メインディレクトリ「MyMainFolder」とその中にいくつかのサブディレクトリを持つMyFile.zipがあり、そのうちの1つ(MySubFolder)を抽出したい...そのすべてのサブディレクトリとコンテンツ。
「MySubFolder」を抽出できるように、 MyMainFolder に「ステップイン」する方法を見つけようとしています。
探しているフォルダーがzip内のメインフォルダーとして存在する限り、フォルダーを抽出するコードがいくつかあります...そして、メインフォルダーが「MyMainFolder」と呼ばれているかどうかを検出できるため、その中を調べて、 MySubFolder のメインの zip ルートを調べるのではなく、そこから抽出します)。
using (ZipFile zip1 = ZipFile.Read(fileName))
{
zipFile = ZipFile.Read(@""+fileName);
var result = zipFile.Any(entry => entry.FileName.Contains("MySubFolder"));
if (result == false)
{
MessageBox.Show("MyMainFolder detected....Extracting from MyMainFolder...");
// something here that will extract JUST MySubFolder and contents
} else {
foreach (var e in selection)
{
var selection = (from e in zip1.Entries where (e.FileName).Contains("NySubfolder") select e)
e.Extract(outputDirectory);
}
}
}
これまでのところ、if-else の各部分の中に個別の using を入れようとしました。また、ルート フォルダー名 (この実験では常に「MyMainFolder」になります) を強制しようとした個別の selectionX を作成してみました。 MySubFolder を抽出できると考えて、調べたものの一部になりましたが、それを機能させることもできませんでした。「ファイルを抽出する方法、zipファイルのパスを無視する」の一部を使用するなど、スタックフローなどで見つけた他のいくつかの方法を取り入れようとしましたが、そのメインルートを「スキップ」する方法を見つけようとしました解凍時のフォルダ。(「MySubFolder」(およびコンテンツ)のみを取得し、outputDirectoryに抽出するように(MyMainFolder\MySubFolderではありません...)
どんな助けでも大歓迎です。ありがとう!!