我目前正在寻找一个 C# 解决方案,它可以读取文件的硬链接数量及其链接位置。我正在考虑程序链接 shell 扩展,它可以通过转到文件属性并列出一个文件的所有硬链接来完成此操作。我希望 C# 编码器有一个解决方案,可以在不搜索整个磁盘的情况下执行相同的操作。

编辑1:

如果两个硬链接是同一个文件,有没有办法测试它们?

有帮助吗?

解决方案

要获取链接计数,请使用 GetFileInformationByHandle 并访问 NumberOfLinks 成员。

下面是在 VB 中使用 API 的示例: http://blogs.msdn.com/b/vbteam/archive/2008/09/22/to-compare-two-filenames-lucian-wischik.aspx

要查找所有链接的名称,您需要使用 查找第一个文件名W 但它仅在 Vista(或 Server 2k8)中可用,并且我找不到它的 P/Invoke 信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top