例から、zip ファイルを解凍する方法をかなりよく理解できました。
ほぼすべての例で、ZipEntry がディレクトリであることを識別する方法は次のとおりです。
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);
if (directoryName.Length > 0)
Directory.CreateDirectory(Path.Combine(destinationDirectory, directoryName));
if (fileName != String.Empty)
{
//read data and write to file
}
これで問題なく、ファイルが抽出されると、すべての (ディレクトリが検出され、作成されます) ディレクトリが使用可能になります。
ファイルを zip に追加することはできますが、フォルダを追加するにはどうすればよいですか? ディレクトリをループして、見つかったファイルを追加する (そして、ZipEntry.Name プロパティが適切に入力される) ことは理解していますが、ZipEntry をアーカイブに追加し、それがディレクトリであることを ZipOutputStream に指示するにはどうすればよいですか?