跨平台文件路径比较

本文关键字:比较 路径 文件 跨平台 | 更新日期: 2023-09-27 17:59:40

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

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

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

我知道它在Linux上无法正常工作,因为路径在那里是区分大小写的。因此,我正在搜索一些路径的平台大小写敏感性的指示。或者像Path.Equals这样的函数。

跨平台文件路径比较

在您的情况下,检查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);
}