У меня есть куча ZIP файлов, которые отчаянно нуждаются в некоторой иерархической реорганизации и извлечения. В настоящее время я могу создать структуру каталогов и переместить zip файлы в нужное место. Мистический сыр, который мне не хватает, является частью, которая извлекает файлы из ZIP-архива.
Я видел статьи MSDN в классе ZipArchive
и хорошо понимаю их. Я также видел способы VBScript для извлечения. Это не сложный класс, поэтому извлечение материала должно быть довольно простым. Фактически, он работает "в основном". Я включил свой текущий код ниже для справки.
using (ZipPackage package = (ZipPackage)Package.Open(@"..\..\test.zip", FileMode.Open, FileAccess.Read))
{
PackagePartCollection packageParts = package.GetParts();
foreach (PackageRelationship relation in packageParts)
{
//Do Stuff but never gets here since packageParts is empty.
}
}
Проблема, кажется, где-то в GetParts
(или GetAnything, если на то пошло). Кажется, что пакет, открытый, пуст. Копая глубже, отладчик показывает, что частный член _zipArchive показывает, что на самом деле есть части. Части с правильными именами и всем остальным. Почему функция GetParts
не возвращает их? Я попробовал придать открытию ZipArchive, и это не помогло. Хмм.