階層的な再編成と抽出がどうしても必要な 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
(またはそのことについては Get Anything )。パッケージが開いている間は空のようです。デバッガーをさらに掘り下げると、プライベート メンバー _zipArchive が実際にパーツを持っていることが示されます。正しい名前のパーツとすべて。GetParts
関数がそれらを取得しないのはなぜですか? オープンを ZipArchive にキャストしようとしましたが、役に立ちませんでした。うーん。