DSOFile.OleDocumentProperties.Save
修改与 NTFS 上的文件关联的元数据。
它会修改文件本身,这意味着校验和会改变吗?
或者它是否只修改了一些关于文件的 NTFS 元数据,但校验和将保持不变?
信用:这实际上是 Ilmo 在这个问题中的自我审问。
DSOFile.OleDocumentProperties.Save
修改与 NTFS 上的文件关联的元数据。
它会修改文件本身,这意味着校验和会改变吗?
或者它是否只修改了一些关于文件的 NTFS 元数据,但校验和将保持不变?
信用:这实际上是 Ilmo 在这个问题中的自我审问。
这取决于文件格式和文件所在的文件系统。
如果文件是 OLE 格式,则文件本身将被修改,因为文件中包含属性。这将导致文件数据被修改,其大小可能会改变。任何文件散列生成器(例如 CRC、MD5、SHA1 等)在更改其中一个属性之前和之后都会产生不同的结果。
如果文件不是 OLE 格式,则所有属性都将保存在一个或多个 NTFS 文件流中,这些文件流与文件数据在物理上是分开的。这将导致文件的最后修改时间发生变化,但不会导致文件数据被修改或大小发生变化。假设程序不考虑文件的最后修改时间及其文件流,文件哈希生成器将在更改属性之一之前和之后产生相同的结果。在非 NTFS 文件系统的情况下,OLE 文档属性不适用于所有文件。