我在文件大小和使用的磁盘空间之间有区别(总文件大小甚至超过磁盘大小)。我想是因为Windows 7/Vista中存在许多硬链接(与WinSXS组件)。但是,如何以编程方式将硬链路与Windows 7中的真实文件区分开?

有帮助吗?

解决方案

您不能,因为所有文件都是困难的链接。不完全是。文件只是数据块的硬链接 - 目录中的列表。 (也许你是说symlinks? 能够 区分那些...)

使用Windows提供的内置方法用于计算二手空间。

编辑: 参考 (强调我的)

链接本身只是目录条目, ,并且没有安全描述符。因此,当您更改硬链接的安全性描述符时,您将更改基础文件的安全描述符,并且所有指向文件的硬链路都允许新指定的访问。

其他提示

不能 将硬链接与“真实文件”区分开。 “真实文件”的目录条目只是另一个硬链接。也许您的意思是符号链接。

Posix有一个 stat 函数(调用 _stat 在Windows)中可以检测到与同一文件的多个链接,该链接将具有相同的“ Inode”号码。

采用 getFileInformationByHandle() 并检查返回的 by_handle_file_information nnumberoflinks成员的值> 1。

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