假设我有两个目录路径:
C:\Shares\Apple\Orange
和
\\MACHINENAME\Apple\Orange
有没有办法(以编程方式)确定它们是否引用同一目录?通常,我可以在不比较路径的情况下确定两个目录引用是否相同吗?
答案 0 :(得分:1)
这是您可以尝试的方式。它可能会扼杀某些东西。我还没有测试过。
使用FILE_FLAG_BACKUP_SEMANTICS
在每个目录上拨打CreateFile()
。
在两个句柄上调用GetFileInformationByHandle()
。
比较文件索引,卷序列号。
比较卷名。
你说比较路径是个坏主意是对的。符号链接,短名称和驱动器号映射会妨碍您的使用。
答案 1 :(得分:0)
不,不是没有来自\\MACHINENAME
的明确的带外合作。在Windows上,SMB协议不公开获取唯一标识基础卷的GUID的方法。该协议甚至不保证您正在查看实际音量。