如果我有两个DirectoryInfo对象,我如何比较它们的语义相等?例如,以下路径应全部视为等于C:\temp:
C:\tempC:\temp\C:\temp\.C:\temp\x\..\..\temp\.以下可能等于或不等于C:\temp:
\temp 如果当前工作目录在驱动器上 C:\temp 如果当前工作目录是 C:\C:\temp.C:\temp...\如果考虑当前的工作目录很重要,我可以自己解决这个问题,所以这并不重要.尾随点在窗口中被剥离,因此这些路径确实应该相等 - 但它们不会在unix中被剥离,所以在mono下我会期望其他结果.
区分大小写是可选的.路径可能存在也可能不存在,用户可能拥有或可能没有路径权限 - 我更喜欢快速健壮的方法,不需要任何I/O(所以没有权限检查),但是如果有什么内置的话 - 我对任何"足够好"的东西都很满意......
在即将到来的Java7中,有一个新的API来检查两个文件对象是否是相同的文件引用.
.NET框架中是否提供了类似的API?
我通过MSDN搜索它,但没有任何启发我.
我希望它很简单,但我不想通过文件名进行比较,这将导致硬/符号链接和不同路径风格的问题.(例如\\?\C:\,C:\).
我要做的是防止重复文件被拖放到我的链接列表中.