我目前正在寻找一个 C# 解决方案,它可以读取文件的硬链接数量及其链接位置。我正在考虑程序链接外壳扩展,它可以通过转到文件属性并列出一个文件的所有硬链接来做到这一点。我希望 C# 编码器有一个解决方案,它可以在不搜索完整磁盘的情况下执行相同的操作。
编辑1:
如果它们是同一个文件,有没有办法测试两个硬链接?
要获取链接计数,请使用GetFileInformationByHandle
和访问该NumberOfLinks
成员。
这是在 VB 中使用 API 的示例:http: //blogs.msdn.com/b/vbteam/archive/2008/09/22/to-compare-two-filenames-lucian-wischik.aspx
要查找所有链接的名称,您需要使用FindFirstFileNameW,但它仅在 Vista(或 Server 2k8)中可用,我找不到它的 P/Invoke 信息。