代码之家  ›  专栏  ›  技术社区  ›  CoderDennis

比较Windows目录名的最佳方法[重复]

  •  1
  • CoderDennis  · 技术社区  · 14 年前

    可能重复:
    How can I compare (directory) paths in C#?

    我有一个文件名和一个目录名,我想确定文件是否在目录中。我的第一个想法是使用字符串比较,并检查文件名字符串是否以目录名字符串开头。但是,如果目录名是UNC路径,文件名是映射驱动器,则此操作将失败。或者如果字符串中有其他形式的别名。

    字符串比较似乎不是一种可靠的方法。是否有内置的.NET函数用于确定2个“directoryInfo”对象是否指向同一文件夹?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Justin    14 年前

    你应该使用 Path 班级。

    类似下面这样的技巧可以做到:

    string.Compare(Path.GetDirectoryName(filePath), directoryPath.Trim('\\'), true)
    

    如果要处理相对路径,则可以先将DirectoryPath和FilePath转换为完整路径:

    string.Compare(Path.GetDirectoryName(Path.GetFullPath(filePath)), GetFullPath(directoryPath).Trim('\\'), true)
    

    编辑: 编辑以执行大小写不变比较。