【发布时间】:2016-11-29 00:03:24
【问题描述】:
如果我给你一个文件。您可以读取文件,但不能更改或复制它。然后我拿文件,重命名,把它移到一个新的位置。您如何识别该文件? (相当可靠)
我正在寻找我是否有一个程序的媒体文件数据库并且用户更改了文件的位置/名称,我是否可以通过搜索目录并查找某些内容来找到该文件。
【问题讨论】:
-
一个想法是记住文件的哈希值和文件长度。
-
You can read the file but you can't change it or copy it -
而且你可以边复制边改。
-
在 NTFS 或 ReFS 文件系统上,至少,只要文件保留在同一个卷上,它就会分配一个唯一的 ID,即使文件被移动、重命名、修改,它也会保持不变等。例如,该 ID 可以与
OpenFileById()一起使用。在检查两个文件句柄是否引用同一个文件时,您可以检查它们是否具有相同的 ID,而不是比较它们的文件路径。您可以使用GetFileInformationByHandle/Ex()检索文件的唯一 ID。 -
将该文件的 MD5 Sum 或 SHA1 保存在该文件的数据库中。
标签: windows file identity uniqueidentifier identify