【问题标题】:Cross-platform filepaths comparison跨平台文件路径比较
【发布时间】:2014-06-09 07:47:06
【问题描述】:

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

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

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

我知道它在 Linux 上无法正常工作,因为路径 区分大小写。因此,我正在寻找路径的平台区分大小写的一些指示。或者像Path.Equals这样的功能。

【问题讨论】:

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


    【解决方案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);
    }
    

    【讨论】:

    • 嗯,这很有趣。谢谢你的答复。我希望有一些明确的东西。
    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    相关资源
    最近更新 更多