2009-11-13 25 views
1

说我有两个目录路径:确定目录等价(Windows)中

C:\Shares\Apple\Orange

\\MACHINENAME\Apple\Orange

有没有一种办法(编程)确定它们是否指的是同一目录?一般来说,如果不比较路径,我可以确定两个目录引用是否相同?

回答

1

以下是您可以尝试的方法。它可能会窒息一些东西。我没有测试过它。与FILE_FLAG_BACKUP_SEMANTICS每个目录

  1. 呼叫CreateFile()

  2. 在两个手柄上拨打GetFileInformationByHandle()

  3. 比较文件索引,卷序列号。

  4. 致电GetVolumeInformationByHandle()

  5. 比较卷名称。

你说得对,比较路径是一个坏主意。符号链接,简称和驱动器号映射以这种方式得到了解决。

+0

谢谢,这似乎是伎俩! – marijne 2009-11-16 15:42:54

0

不,没有从\\MACHINENAME明确的带外合作。在Windows上,SMB协议没有公开获取唯一标识基础卷的GUID的方法。该协议甚至不保证您正在查看实际音量。