#filter #unzip #chilkat
#Фильтр #распакуйте #chilkat
Вопрос:
zip.UnzipMatching("qa_output","*.xml",true)
С помощью этого синтаксиса я могу распаковать каждый XML-файл в каждом каталоге из моего ZIP-файла и создать ту же структуру каталогов.
Но как я могу разархивировать только xml в корневом каталоге?
Я не могу понять, как написать фильтр. Я пробовал, "/*.xml"
но ничего не извлекается. Если я пишу "*/*.xml"
, я извлекаю XML-файлы только из подкаталога (и я пропускаю xml в корневом каталоге!). Кто-нибудь может мне помочь?
example of a zip files content:
a1.xml
b1.xml
c1.xml
dir1a2.xml
dir1c2.xml
dir2dir3c3.xml
с unzipmatching("qa_output","*.xml", true)
помощью я извлекаю все эти файлы с исходной структурой каталогов, но я хочу извлечь только a1.xml , b1.xml и c1.xml .
Есть ли способ написать filter для достижения этого результата, или другую команду, или другой подход?
Ответ №1:
Я думаю, что вы хотите вызвать UnzipMatchingInto: все файлы (соответствующие шаблону) в Zip-файле разархивируются в указанный dirPath, независимо от информации о пути к каталогу, содержащейся в Zip. Это приводит к свертыванию всех файлов в один каталог. Если несколько файлов в Zip имеют одинаковые имена, файлы, разархивированные последними, перезапишут уже разархивированные файлы.
Комментарии:
1. Нет, я отредактировал свой вопрос, чтобы добавить краткий пример. Если я использую UnzipMatchingInto, я также извлеку a2.xml , c2.xml , и c3.xml это мне не нужно. Я хочу извлекать только XML-файлы, которые находятся в корне ZIP-файлов.
2. Вы можете сделать это: (C #) example-code.com/csharp/unzip_by_iterating_over_entries.asp (C ) example-code.com/cpp/unzip_by_iterating_over_entries.asp (VB6) example-code.com/vb6/unzip_by_iterating_over_entries.asp и т.д..