4

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

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

4

2 回答 2

6

用于Path.Combine构建您的路径。考虑这段代码:

var path = Path.Combine(
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
    "childFolder");
于 2013-06-13T03:56:14.087 回答
5

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

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

于 2013-06-13T03:55:32.263 回答