我正在开发一个需要能够在 Windows 和 Linux 上运行的 C# 控制台应用程序。它将在 .NET 3.5 和 Mono 上运行。我希望能够检查当前运行的目录中是否存在目录。由于 Windows 使用反斜杠进行目录遍历,而 Linux 使用正斜杠,我如何检查一个目录是否存在于另一个目录中?
我正在使用 System.IO.Directory.Exists。我认为一个简单的方法是首先检查当前工作文件夹的“/”或“\”以确定使用哪个,但是在某些情况下可能会有一个转义字符会搞砸!
用于Path.Combine
构建您的路径。考虑这段代码:
var path = Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"childFolder");
Windows 对此非常宽容。您可以使用正斜杠,它会理解。
如果您不想冒险可能会感到困惑(我不是 100% 确定 Windows总是能理解这一点),您可以使用Path.DirectorySeparatorChar