识别平等路径
有没有简单的方法来识别 2 个(或更多)路径是否指向同一位置(假设我只有读取权限)?
例如 \我的机器名称\temp \212.200.10.5\温度 c:\临时
Is there's any simple way for identifying whether 2 (or more) paths point to the same location (assuming I only have read permissions)?
e.g.
\My-Machine-Name\temp
\212.200.10.5\temp
c:\temp
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设文件系统是 NTFS,您可以使用文件系统序列号(整个文件系统的)和文件 ID(特定文件/目录的)一起表示该文件的主键。根据统计,发生哈希冲突的可能性极小,实际上,如果两个文件或目录共享相同的 ID 和 FS 序列号,那么它们是相同的。
由于我不了解您的开发环境,因此我无法帮助您实际实施。
Assuming the file systems are NTFS, you can use the File System Serial Number (of the entire File System) and File ID (of that particular file/directory) to together represent a primary key for that file. With the understanding that you have a very statistically improbable chance of a hash collision, realistically if two files or directories share the same ID and FS serial number, they are identical.
I can't help you with your actual implementation since I do not know your development environment.
您想要将驱动器转换为 UNC(通用命名约定)形式。 Windows API 中的 WNetGetUniversalName 函数将将映射驱动器转换为 UNC 名称。因此,c:\temp 将转换为 \My-Machine-Name\temp。
如果您需要将带有主机名(如 \My-Machine-Name)的 UNC 路径与 IP 地址进行比较,您可以 ping \My-Machine-Name 来获取其 IP 地址。
You want to convert your drives to UNC (universal naming convention) form. The WNetGetUniversalName function in the Windows API will convert a mapped drive to a UNC name. So c:\temp will be converted to \My-Machine-Name\temp.
If you need to compare a UNC path with a hostname (like \My-Machine-Name) to an IP address, you can ping \My-Machine-Name to get its IP address.