猿问

如何在C#中比较(目录)路径?

如果我有两个DirectoryInfo对象,如何比较它们的语义相等性?例如,以下路径应全部视为等于C:\temp

  • C:\temp

  • C:\temp\

  • C:\temp\.

  • C:\temp\x\..\..\temp\.

以下内容可能等于也可能不等于C:\temp

  • \temp 如果当前工作目录在驱动器上 C:\

  • temp 如果当前工作目录是 C:\

  • C:\temp.

  • C:\temp...\

如果考虑当前的工作目录很重要,那么我可以自己弄清楚,所以这并不重要。尾随的点在窗口中被剥离,因此这些路径确实应该相等-但它们在unix中不被剥离,因此在mono下,我期望其他结果。

区分大小写是可选的。这些路径可能存在或不存在,并且用户可能具有该路径的权限-我更喜欢一种快速健壮的方法,该方法不需要任何I / O(因此无需权限检查),但是如果有内置的东西-我也会对“足够好”的东西感到满意...


holdtom
浏览 1316回答 3
3回答
随时随地看视频慕课网APP
我要回答