我從Sharpziplib論壇
嗨
這種反應這似乎是一個WinZip的錯誤。我之前沒有注意到這一點。
我做了這個測試:
1)用WinZip文件添加到壓縮。在WinZip中,單擊「屬性和詳細信息」。查看詳細信息列表並查找文件時間戳。
2)使用SharpZipLib創建一個具有相同輸入文件的類似zip文件。在Winzip中打開結果並查看文件時間戳的「屬性」>「詳細信息」。
我的輸入文件的修改時間戳(文件屬性)爲2010-12-14 15:51:28在我的測試中,SharpZipLib將其正確存儲在zip中,而WinZip將其存儲爲2010-12-14 15 :51:30
換句話說,WinZip在將它放入zip文件時增加了2秒。 解壓後(使用WinZip或SharpZip),修改現在是15:51:30,而不是原來的15:51:28。
令人驚訝的是,WinZip中這樣一個明顯的bug可能沒有被報告和解決這麼久。如果你有一個付費版本,你肯定應該向他們提出一個錯誤的錯誤。
我只記得在舊的8.3文件系統時間戳中有2秒的粒度。
快速谷歌發現這個...
報價「原始DOS文件系統只有32字節來表示在該目錄中的文件。在非常嚴格的8.3文件名和在文件日期有限的粒度(2秒)是在Win32文件系統(VFAT)中更正。「從http://www.xxcopy.com/xxcopy15.htm
ZIP格式只允許在標準時間戳entry.The日期和時間2秒的粒度 被編碼在標準的MS-DOS格式。
可選NTFS額外數據字段(0x000a)可以被包含在內,可能包含最後修改時間,最後訪問時間和創建時間WinZip似乎沒有創建它SharpZip將使用它,如果存在但據我所知,它不是創建時使用FastZip創建一個zip 。這可能是添加到代碼中的一個有用的選項。如果使用ZipFile,你當然可以手動創建。
希望這會有所幫助, David
我不確定我是否理解你的問題。你的意思是,當用Sharpziplib解壓zip文件的內容時,zip文件的LastWriteTime正在改變,WinZip只改變一次到後者一秒? – 2010-12-15 09:01:13
@SoMoS:不是winzip ...通過代碼編譯...有一個秒的變化...對於這個文件1秒...對於其他文件2或3秒的差異是有 – bala3569 2010-12-15 09:03:56
只是從另一個角度來看;你確定這是在提取文件上創建錯誤時間戳的提取,或者是你的初始視圖(在解壓縮之前的zipfile內)顯示不正確的時間戳。不知道Zip如何存儲它的日期時間戳,但我懷疑它是'1-1-70之後的秒數'。其中一個似乎是以不同的方式計算。 – 2010-12-15 09:36:08