2010-12-15 2 views
4

Я использую Sharpziplib version 0.86 для извлечения zip-файла. Это работает отлично, но в то время как извлекая WinZIP файл через код, LastWriteTime меняется в считанные секунды ...lastwritetime меняется при извлечении zipfile в C#?

использовали это также File.SetLastWriteTime(fullPath, theEntry.DateTime);

Фактический файл LastWriteTime: 4/8/2010 2:29:03PM После архивирования файл с помощью WinZip и при извлечении, что файл с использованием кода, извлеченный файл Lastwritetime изменяется на 4/8/2010 2:29:04PM ... Есть ли какое-либо исправление для этого ???

+0

Я не уверен, понимаю ли я ваш вопрос. Вы имеете в виду извлечение содержимого zip-файла с помощью Sharpziplib, которое изменило LastWriteTime zip-файла, и с WinZip изменяется только один раз на секунду? – 2010-12-15 09:01:13

+0

@SoMoS: Не с winzip ... amctracting через код ... есть изменение в секундах ... для этого файла 1 секунда ... для других файлов разница 2 или 3 секунды есть – bala3569 2010-12-15 09:03:56

+0

Просто смотришь с другого угла ; Вы уверены, что это извлечение, которое создает неправильные метки времени для извлеченных файлов, или это начальное представление, которое у вас есть (внутри zipfile, перед распаковкой), отображающее неправильные метки времени. Не знаете, как Zip хранит штампы даты, но я подозреваю, что это «секунды с 1-1 до 70». Один из двух, кажется, вычисляет это по-разному. – 2010-12-15 09:36:08

ответ

2

Я получил этот ответ от SharpZipLib Форум

Hi

Это, как представляется, быть ошибка WinZip. Я этого раньше не заметил.

Я сделал это испытание:

1) Использование WinZip, чтобы добавить файл в ZIP. В WinZip нажмите «Свойства» и «Подробности». Просмотрите список деталей и найдите отметку времени файла.

2) Используйте SharpZipLib для создания аналогичного zip-файла с тем же входным файлом. Откройте результат в Winzip и посмотрите Свойства> Подробности для отметки времени файла.

Мой входной файл имеет модифицированную временную метку (свойства файла) 2010-12-14 15:51:28, и в моем тесте SharpZipLib правильно сохранил ее в zip, в то время как WinZip сохранил ее как 2010-12-14 15 : 51: 30

Иными словами, WinZip добавляет 2 секунды при помещении его в почтовый индекс. После извлечения (с WinZip или SharpZip), Модифицировано сейчас 15:51:30 вместо оригинала 15:51:28.

Удивительно, что такая очевидная ошибка в WinZip может быть незарегистрированной и незафиксированной так долго. Если у вас есть платная версия, вы обязательно должны поднять с ними ошибку.

Я только что вспомнил кое-что о 2-секундной детализации в старых временных отметках файловой системы 8.3.

Быстрый Google нашел это ...

Quote «Original файловой системы DOS была только 32 байт для представления файла в каталоге. Очень ограничительный 8,3 файла и ограниченная зернистость (2 секунды) в дате файла является исправлено в файловых системах Win32 (VFAT)." от http://www.xxcopy.com/xxcopy15.htm

Формат Zip позволяет только 2 секунды зернистость в течение стандартного времени по дате и времени штампа entry.The кодируются в стандартном формате MS-DOS.

Необязательный NTFS Дополнительное поле данных (0x000A) может который может содержать последнее время модификации, время последнего доступа и время создания. WinZip не создает его. SharpZip будет использовать его, если он присутствует, но, насколько я могу судить, он не создается при использовании FastZip для создания zip-файла Это может быть полезным вариантом для добавления в код. Вы можете создать его вручную, если используете ZipFile.

Надеюсь, это поможет, David

2

Я думаю, что это может быть просто операционная система, которая вызывает это. Я пробовал, что происходит в Explorer. У меня есть текстовый файл с измененной меткой времени 17:06:45. Я нажимаю правой кнопкой мыши на файле и выбираю Отправить в | Сжатая (сжатая) папка. Затем щелкните правой кнопкой мыши на новом zip-файле и выберите «Извлечь все ...», затем «Далее», «Далее», «Готово». Теперь извлеченный текстовый файл имеет отметку времени 17:06:46.

То же самое происходит, когда я использую 7-Zip или WinRar. Но тогда это происходит только при использовании .zip-файла. Если я разрешу им создать файл .7Z или .RAR, метка времени не будет изменена.

Найдено an article on Wikipedia О формате почтового индекса. Если вы выполните поиск в течение «секунд», вы найдете раздел, описывающий, что файловая система ZIP имитирует файловую систему DOS FAT, которая имеет только временное разрешение в две секунды.

 Смежные вопросы

  • Нет связанных вопросов^_^