DSOFile.OleDocumentProperties.Save是否修改了文件?

时间:2012-11-01 07:45:04

标签: ole dsofile

DSOFile.OleDocumentProperties.Save修改与NTFS上的文件关联的元数据。

它是否会修改文件本身,这意味着校验和会发生变化? 或者它只修改有关该文件的一些NTFS元数据,但校验和将保持不变?

有关DSOFile的更多信息:KBTechnet

信用:这实际上是Ilmo在this question内的自我审讯。

1 个答案:

答案 0 :(得分:3)

这取决于文件格式和文件所在的文件系统。

如果文件是OLE格式,则文件本身将被修改,因为属性包含在文件中。这将导致文件数据被修改,其大小可能会改变。在更改其中一个属性之前和之后,任何文件哈希生成器(如CRC,MD5,SHA1等)都会产生不同的结果。

如果文件不是OLE格式,则所有属性都将保存在一个或多个NTFS文件流中,这些文件流在物理上与文件数据分开。这将导致文件上次修改时间发生变化,但不会导致文件数据被修改或更改。假设程序未将文件的最后修改时间及其文件流考虑在内,文件哈希生成器将在其中一个属性更改之前和之后产生相同的结果。如果是非NTFS文件系统,则OLE文档属性不适用于所有文件。