跨平台文件路径比较

时间:2014-04-24 06:55:58

标签: c# .net path mono cross-platform

我试图检查两个文件路径字符串是否指定了相同的路径。

我们知道Windows中的路径不区分大小写。

Path.GetFullPath(path1).Equals(Path.GetFullPath(path2), StringComparison.CurrentCultureIgnoreCase)

我知道它在Linux上无法正常工作,因为路径 区分大小写。所以我正在搜索路径的平台区分大小写的一些指示。或者对于某些功能,例如Path.Equals

1 个答案:

答案 0 :(得分:1)

在你的情况下,检查Path.DirectorySeparatorChar是否等于'/'或'\'可能是最简单的(也是最可靠的),如果它是前者,则调用相同的方法而不使用“IgnoreCase”部分

完整:

if(Path.DirectorySeparatorChar == '/')
{
    Path.GetFullPath(path1).Equals(Path.GetFullPath(path2), StringComparison.CurrentCulture);
}
else
{
    Path.GetFullPath(path1).Equals(Path.GetFullPath(path2), StringComparison.CurrentCultureIgnoreCase);
}