(这个问题是一个强硬的人……可能需要了解NTF和/或使用NT Native Apis;请警告。):) :)

如果我给了两个 HANDLEs到两个文件,我该如何 明确 (不仅概率很高)找出两个 HANDLES属于完全相同的文件并在磁盘上流?

例如,这意味着检查8字节NTFS文件ID还不够,因为两个 HANDLE具有相同文件ID的s可以指向同一文件的不同数据流,我需要找出两个流是否真的相同,并且仅因名称而异(HardLink)。

(有什么用?这样,如果我想对文件夹中的所有文件执行操作,我不会在具有不同名称的同一数据流上进行两次操作。)

有帮助吗?

解决方案

这需要 getFileInformationByHandleex(),要求FileStreamInfo。返回流名。

SDK文档中的此警告应注意:

某些文件信息类在不同的操作系统版本上的行为略有不同。这些课程得到了基础驱动程序的支持,他们返回的任何信息都可能在操作系统版本之间发生变化。

避免依靠程序中(或应该)在程序中容易获得的恢复信息。

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