Как программно проверить дату файла в Zip-архиве?

Учитывая, что у меня есть почтовый файл с именем archive.zip который содержит файл с именем customerDataкак можно программно проверить дату файла внутри archive.zip? Я использую утилиту командной строки Winzip wzunzip, но я бы не стал возражать против использования чего-то другого.

Я пишу приложение.net, которое будет периодически читать данные из customerData, Файл очень большой, и я хочу прервать операцию без распаковки customerData если отметка даты не была обновлена, это указывает на наличие новых данных для чтения.

4 ответа

Решение

Через http://dotnetzip.codeplex.com/. Нет родного способа (который я знаю) сделать это.

Пример кода:

ZipFile z = ZipFile.Read(@"C:\archive.zip");
foreach (ZipEntry zEntry in z)
{
    Console.WriteLine(zEntry.LastModified.ToString());
}

Я думаю, что самым простым.NET API является DotNetZip, но SharpLibZip также работает. Есть несколько платных библиотек, которыми я и пользовался и успешно использовал ChilCat.

ОБНОВЛЕНИЕ: Если вы не против написания сценариев. 7zip командная строка предоставляет информацию

C:\temp\XpsTest>"c:\Program Files\7-zip\7z.exe" l "39 Clues.xps"

7-Zip 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03

Listing archive: 39 Clues.xps


   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2009-09-10 23:06:58 .....          160          212  FixedDocumentSequence.fdseq
...

Если я могу быть настолько смелым, кажется маловероятным, что периодическая проверка zip-файла является хорошим решением многих проблем, если вы не контролируете, как эти данные доставляются вам?

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

Немного не по теме, но иногда ответить на проблему с помощью правильного вопроса не так полезно, как решить более простую и понятную проблему... по крайней мере, мне нравится так думать.

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

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

Другие вопросы по тегам