首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较C#中的两条路径。何时使用区分大小写?

问比较C#中的两条路径。何时使用区分大小写?
EN

Stack Overflow用户
提问于 2019-07-13 22:01:12
回答 1查看 79关注 0票数 0

我目前正在编写一个编译器,我有一个小类,它遍历输入文件,并对它们进行比较,看看是否有重复的文件。当然,我们不能直接比较字符串,因为同一个文件可以写成,比如说,main.c和./main.c。因此,我使用System.IO.Path.GetFullPath()来比较文件路径。问题是在Windows上,文件系统是不区分大小写的,例如,"C:/main.c" == "C:/Main.c",但在*NIX系统上,如Linux、Mac或Android,这两个文件可能是不同的。此外,*NIX还支持像FAT和FAT32这样的文件系统,它们的工作方式与Windows的文件系统类似。我如何知道何时应该比较两个路径是否区分大小写,这样我才能确定两个文件路径是否相等?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-13 22:36:50

您可以调用Shell API函数SHParseDisplayName,然后在SHGetDesktopFolder返回的IShellFolder接口上调用CompareIDs方法。

如果你可以放弃对XP的支持,你可以使用微软的Windows-API-Code-Pack。Microsoft.WindowsAPICodePack.Shell.ShellObject.Equals会做比较。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57019845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档