说我有两个目录路径:确定目录等价(Windows)中
C:\Shares\Apple\Orange
和
\\MACHINENAME\Apple\Orange
有没有一种办法(编程)确定它们是否指的是同一目录?一般来说,如果不比较路径,我可以确定两个目录引用是否相同?
说我有两个目录路径:确定目录等价(Windows)中
C:\Shares\Apple\Orange
和
\\MACHINENAME\Apple\Orange
有没有一种办法(编程)确定它们是否指的是同一目录?一般来说,如果不比较路径,我可以确定两个目录引用是否相同?
以下是您可以尝试的方法。它可能会窒息一些东西。我没有测试过它。与FILE_FLAG_BACKUP_SEMANTICS
每个目录
呼叫CreateFile()
。
在两个手柄上拨打GetFileInformationByHandle()
。
比较文件索引,卷序列号。
比较卷名称。
你说得对,比较路径是一个坏主意。符号链接,简称和驱动器号映射以这种方式得到了解决。
不,没有从\\MACHINENAME
明确的带外合作。在Windows上,SMB协议没有公开获取唯一标识基础卷的GUID的方法。该协议甚至不保证您正在查看实际音量。
谢谢,这似乎是伎俩! – marijne 2009-11-16 15:42:54