Как рассматривать .zip файлы как каталоги в C#?

Я хочу смочь смочь считать файлы в zip-файлах так же, как я считал бы файлы в физической папке. Как я могу сделать это, не имея необходимость извлекать файлы?

5
задан Suraj 23 April 2010 в 19:26
поделиться

3 ответа

Прежде всего .NET, хотя он поддерживает сжатые файлы, он не поддерживает файлы ZIP (не уверен насчет .NET v4)

В любом случае я использовал SharpZipLib { {1}} http://www.icsharpcode.net/OpenSource/SharpZipLib/ (внимательно прочтите исключения GPL +)

Эта библиотека позволяет вам пройти через ZipStream и получить доступ к ZipEntry, который дает вам всю информацию о файле.

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

Также поддерживает почтовые индексы с паролем.

0
ответ дан 14 December 2019 в 13:30
поделиться

Вам нужно будет написать или найти оболочку, которая представляет собой виртуальную файловую систему.

API может быть таким же простым, как единственный общедоступный Stream GetFile (строковый путь) метод, либо сложным, как полная FS.

Это возможно с использованием любой библиотеки сжатия, которая поддерживает формат файла, который вы хотите использовать.

Я написал простую сжатую VFS с использованием библиотеки Cheeso DotNetZip , и она отлично работает.

0
ответ дан 14 December 2019 в 13:30
поделиться

Есть некоторые компоненты, которые позволяют просматривать содержимое файла .zip из приложения .NET:

Раньше я использовал #ziplib и он отлично работал для моих не слишком обширных целей.

3
ответ дан 14 December 2019 в 13:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: