Как получить список всех файлов в директории с расширением zip
Перейти к содержимому

Как получить список всех файлов в директории с расширением zip

Получить список файлов из ZIP

Есть байт-код zip файла. Необходимо получить список файлов в архиве. Смотрел спецификацию — пока очень сумбурно все. Решил глянуть код в хекс редакторе, обратил внимание, что все файлы в архиве описаны в конце архива. Вот выдержка из кода тестового архива:

Код:
04 00 00 80 08 00 00 0C 00 18 00 00 00 00 00 00 00 00 00 B4 81 00 00 00 00 50 65 72 73 6F 6E 2E 63 6C 61 73 73 55 54 05 00 03 8A 44 71 52 75 78 0B 00 01 04 E8 03 00 00 04 E8 03 00 00 50 4B 01 02 1E 03 14 00 00 00 08 00 53 71 61 43 77 E4 43 50 16 7D 0A 00 BC C4 0A 00 08 00 18 00 00 00 00 00 00 00 00 00 B4 81 76 04 00 00 74 65 73 74 2E 67 69 66 55 54 05 00 03 3E 9A 73 52 75 78 0B 00 01 04 E8 03 00 00 04 E8 03 00 00 50 4B 05 06 00 00 00 00 02 00 02 00 A0 00 00 00 CE 81 0A 00 00 00

. ´. Person.classUT. DqRux. è. è. PK. SqaCwäCP.>..¼Ä. ´.v. test.gifUT. >.sRux. è. è. PK. . Î…

Подскажите, как обработать архив, чтобы получить список файлов в нем

  • Вопрос задан более трёх лет назад
  • 6147 просмотров
  • Facebook
  • Вконтакте
  • Twitter

asolovey

Ну и собственно пример выше, разобранный чуть подробнее:

Надеюсь это помогло, если остались вопросы — задавайте, я в своё время немало головной боли помел с зип-файлами.

Как прочитать все файлы ".java" из файла ".zip"

Я хочу получить все .java файлы и поместить их в ArrayList файлов. Я взял ZipInputStream , а затем ZipEntry для перебора файлов, но не могу понять, как получить файлы из ZipEntry .

4 ответа

Вот код, который может читать и распечатывать файлы .java в zip-файлах:

Вы также можете получить файл и его содержимое, используя этот код.

Может быть, вы можете напрямую использовать файл, как показано ниже:

Пожалуйста, проверьте с этим кодом

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

После того, как вы извлечете файлы, вы можете заполнить свой список ссылками на них.

Постскриптум Я предполагаю, что вы делаете это для проекта или чего-то еще, но в целом такие инструменты, как Sonarqube, хороши для статического анализа кода.

Как получить список файлов архива 7z?

Проверьте, что путь к 7z.exe прописан в переменной окружения PATH , без этого даже из командной строки вы будете получать ошибку, или укажите путь явно в команде.

Проверьте, что у пользователя, от имени которого запускается программа достаточно прав на чтение архива и запись файла в соответствующую папку.

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

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

Нашел в чем проблема с вашим кодом, но это не отменяет всего описанного выше.

Команда 7z l my.zip > my.txt для CMD или PowerShell абсолютно верная, но ее нельзя просто засунуть в аргументы запуска процесса, т.к. по сути в этой записи не одна а две команды: команда для архиватора 7z l my.zip — вывести список файлов и команда для консоли > my.txt — перенаправить вывод в файл.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *