我有文件名和目录名,我想要阻止文件是否在目录中。我的第一个想法是使用字符串比较并检查文件名字符串是否以目录名字符串开头。但是,如果目录名是UNC路径且文件名是映射驱动器,则会失败。或者,如果其中一个字符串中存在其他形式的别名。
字符串比较似乎不是一个可靠的方法。是否有内置的.NET函数来确定2个“DirectoryInfo”对象是否指向同一个文件夹?
答案 0 :(得分:0)
您应该使用Path类。
以下内容可以解决问题:
string.Compare(Path.GetDirectoryName(filePath), directoryPath.Trim('\\'), true)
如果您想处理相对路径,那么您可以先将directoryPath和filePath转换为完整路径:
string.Compare(Path.GetDirectoryName(Path.GetFullPath(filePath)), GetFullPath(directoryPath).Trim('\\'), true)
编辑:编辑执行大小写不变的比较。