【问题标题】:Best method for comparing windows directory names [duplicate]比较Windows目录名称的最佳方法[重复]
【发布时间】:2011-03-13 03:00:14
【问题描述】:

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

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

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

【问题讨论】:

标签: .net windows directory


【解决方案1】:

您应该使用Path 类。

类似下面的方法可以解决问题:

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

如果你想处理相对路径,那么你可以先将 directoryPath 和 filePath 转换为完整路径:

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

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

【讨论】:

    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    相关资源
    最近更新 更多