说我有两个目录path:
C:\Shares\Apple\Orange
和
\\MACHINENAME\Apple\Orange
有没有办法(编程)确定他们是否指向同一目录? 一般来说,如果不比较path,我可以确定两个目录引用是否相同?
这是你可以尝试的一种方法。 它可能会窒息一些东西。 我没有测试过。
使用FILE_FLAG_BACKUP_SEMANTICS
在每个目录上调用CreateFile()
。
在两个句柄上调用GetFileInformationByHandle()
。
比较文件索引,卷序列号。
调用GetVolumeInformationByHandle() 。
比较卷名称。
你是对的说比较路径是一个坏主意。 符号链接,短名称和驱动器号映射以这种方式得到了您的方式。
不,没有\\MACHINENAME
明确的带外合作。 在Windows上,SMB协议没有提供唯一标识底层卷的GUID的方法。 协议甚至不保证你正在看实际的音量。