如何在Windows和Linux中获取根目录?
我使用 .net6 编写了一个小软件,它应该在 Windows 和 Linux (Ubuntu) 上运行。在此软件中,我需要访问文件夹中的文件。 Linux:/folder1/folder2/file.txt Windows:d:\folder1\folder2\file.txt 两个系统上的文件夹结构和文件名相同。 到目前为止,此代码可以运行
string[] pfad;
pfad = new[] { "folder1", "folder2","file.txt" };
Console.WriteLine(System.IO.Path.Combine(pfad));
并在 Linux 和 Windows 下提供正确的文件夹结构。
如何定义根目录? Linux 中为 /,Windows 中为 d:\ 我可以以某种方式检测操作系统类型或者最好的方法是什么?
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);在 Windows 下“修复”到 C:... - 我想使用另一个驱动器。
I wrote a small software using .net6 which should run on Windows and Linux (Ubuntu). In this software I need to access a file in a folder.
Linux: /folder1/folder2/file.txt
Windows: d:\folder1\folder2\file.txt
The folder structure and the filename is the same on both systems.
This code works so far
string[] pfad;
pfad = new[] { "folder1", "folder2","file.txt" };
Console.WriteLine(System.IO.Path.Combine(pfad));
and delivers the correct folder structur under Linux and Windows.
How can I define the root directory?
/ in Linux and d:\ in Windows
Can I detect the OS type somehow or what is the best approach?
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); is "fix" under Windows to C:... - I want to use another drive.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
借用 stefan 答案,但使用
OperatingSystem
类而不是RuntimeInformation
(因为OperatingSystem
是System
的一部分,我相信它是更好的选择)Borrowing from stefan answer but using
OperatingSystem
class instead ofRuntimeInformation
(sinceOperatingSystem
is part ofSystem
i believe it's preferable)您可以像这样使用 System.Runtime.InteropServices.RuntimeInformation :
You can use System.Runtime.InteropServices.RuntimeInformation like this: