我的想法是要及时跟踪文件系统上的特定文件,随着时间的推移两点之间,T1
和T2
。这里的重点在于将文件视为文件系统上的独特实体。一个可以改变数据和属性,但仍然保持其独特的身份。跟踪文件随着时间的推移
的最终目标是要确定是否一个文件的数据具有(不情愿)T1
和T2
之间改变,以通过捕获和在T1
记录数据散列和创建/文件的修改的属性,并将它们与所述比较等同于T2
。如果所有属性都保持不变,但哈希不验证,我们可以说有问题。在所有其他情况下,我们可能愿意说改变后的哈希值是修改后的结果,哈希值和未改变的修改值是根据文件(数据)完全没有改变的结果。
现在,有几种方法引用文件和相应的缺点:
- 的文件路径:但是,如果文件移动到不同的位置,此方法将失败。
- 文件数据的数据散列:即使指针已被移动到不同的目录,也会允许找到文件,或者(或者)指向磁盘上文件数据的指针,但数据无法更改,或者此方法也失败。
我的想法是在T1
检索特定文件的fileid跟踪文件在T2
,即使它已经改变了它的位置,因此不需要在被看作是一个新文件。
我知道的两种方法pywin优惠。 win32file.GetFileInformationByHandle()
和win32file.GetFileInformationByHandleEx()
,但它们显然只限于特定的文件系统,打破了跨平台兼容性,摆脱了通用方法来跟踪文件。
我的问题很简单:是否有任何其他的想法/理论来跟踪文件,最好翻过平台/ FSS?
任何头脑风暴的思想是值得欢迎的!
如何考虑的文件内容MD5哈希值。并通过不同的时间检查md5哈希? – 2013-03-27 04:03:20
在linux文件系统上(我想是'ext'),如果我没有弄错的话,inode会在文件移动时保持不变。在窗户上,但是......我不确定。这是一个很好的问题。您可能需要编写一些特定于平台的代码,并涵盖所有基础。 – mpen 2013-03-27 04:05:30
@SidharthShah:他报道过。如果文件移动*和*在T1和T2之间修改,则会被拧紧。散列会有所不同;您将无法再找到该文件。 – mpen 2013-03-27 04:06:18