据我所知(1)
(2)
(3)
(4),JDK7的方法是通过在文件上调用GetFileInformationByHandle并比较dwVolumeSerialNumber,nFileIndexHigh和nFileIndexLow。
每个MSDN:
您可以比较BY_HANDLE_FILE_INFORMATION结构中返回的VolumeSerialNumber和FileIndex成员,以确定两个路径是否映射到相同的目标。例如,您可以比较两个文件路径并确定它们是否映射到同一目录。
我不认为此功能由.NET包装,因此您必须使用P /
Invoke。
它可能适用于网络文件,也可能不适用于网络文件。根据MSDN:
根据 *** 作系统的基础网络组件和连接的服务器的类型,GetFileInformationByHandle函数可能会失败,返回给定文件的部分信息或完整信息。
快速测试表明,在使用SMB /
Samba连接的Linux系统上,该链接在符号链接上可以按预期(相同的值)工作,但是当使用指向同一文件的不同共享访问文件时,它无法检测到文件相同(
FileIndex相同,但VolumeSerialNumber不同)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)