2010-08-26 19 views
1

我知道你可以讀一個集版本的DLL文件,但我想知道是否有某種方式來標記或任何文件類型(JPG例如)閱讀的版本。我正在製作一個更新程序,只更新必要的內容,如果所有文件都是版本化版本,而不是在單獨的文件中跟蹤版本,則會更好。的Windows文件屬性/版本的文件

哦,這是爲winXP的,但如果我有那會是一個真棒WIN7 /飽和溶液。

回答

1

程序集的版本是特定於程序集文件格式的東西。一般的「文件」(比如JPEG文件)只是一小塊位,Windows文件系統沒有任何與這樣的文件關聯的「版本」元數據。

一種方法來解決你的問題可能是計算散列(如使用SHA1)在文件的內容。如果你有兩個文件和SHA1哈希匹配,那麼你可以確信完整的內容也匹配。 (你不能確定嵌入的文件版本。)

+0

有沒有辦法在我分發它們之前將自定義元數據屬性附加到這些文件?然後讓我的更新程序讀取元數據附件? – 2010-08-27 00:07:59

+0

_some_文件格式的設計方式使得您可以注入任意數據(例如.gif)。這通常是通過隱寫科學來完成的(請參閱http://www.garykessler.net/library/steganography.html)。但是,這隻適用於很少的文件,沒有通用的方法來實現這一點。您最好維護自己的數據庫,通過錯誤匹配的哈希來檢測文件更改 – Basic 2010-08-27 00:20:00

+0

@myermian:不,不是以便攜式和強大的方式。我能想到的Windows的唯一方法是使用NTFS備用文件流,但是當文件被複制時,這些流不可靠地複製,甚至在FAT等文件系統上也不支持。此外,如果有人更改文件內容而不是元數據,你會怎麼做? – 2010-08-27 00:20:45