System.IO.Directory.Exists()与Windows和Linux一起使用

mun*_*lli 4 c# mono

我正在开发一个C#控制台应用程序,它需要能够在Windows和Linux上运行.它将在.NET 3.5和Mono上运行.我希望能够检查当前运行的目录中是否存在目录.由于Windows使用反斜杠进行目录遍历,并且Linux使用正斜杠,如何检查另一个目录中是否存在目录?

我正在使用System.IO.Directory.Exists.我认为一个简单的方法是首先检查当前工作文件夹中的"/"或"\"以确定使用哪一个,但是在某些情况下可能会有一个转义字符会使事情变得混乱!

Mik*_*oud 6

使用Path.Combine来构建你的路.考虑以下代码:

var path = Path.Combine(
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
    "childFolder");
Run Code Online (Sandbox Code Playgroud)


zmb*_*mbq 5

Windows对此非常宽容.你可以使用正斜杠,它会理解.

如果你不想冒这个机会它可能会感到困惑(我不是100%确定Windows 总是理解这一点),你可以使用Path.DirectorySeparatorChar