すべてのフォルダとその内容をまとめてzipファイルにまとめようとしています。 (StackOverflowとMicrosoftを使用して)調査したところから、Directory.CreateDirectory(Path)は指定されたディレクトリを作成する必要があります。しかし、私のZipFileは空になっています。Directory.CreateDirectory()はZipFile内にフォルダを作成しません
たとえば、サブフォルダ(0001、0002)を含むフォルダ(C:\ Users \ smelmo \ Desktop \ test)があります。 0001内には0002、その他には0002があります。私は0001と0002を一緒にジッパーフォルダ内で圧縮したいと思っています。これは今まで私が持っているものです:
// Open the directory of the target folder
using (ZipArchive archive = ZipFile.Open(strZipPath, ZipArchiveMode.Create))
{
// Grab each directory within the target folder
foreach (var directoryName in Directory.GetDirectories(strStartPath))
{
// Add each directory to the ZipFile
Directory.CreateDirectory(directoryName);
}
}
これは何も生成されません。しかし、私はまた、サブフォルダ内のすべてのファイルを取得し、ZipFileに配置するコードを持っています。
// Open the directory of the target folder
using (ZipArchive archive = ZipFile.Open(strZipPath, ZipArchiveMode.Create))
{
// Grab each directory within the target folder
foreach (var directoryName in Directory.GetDirectories(strStartPath))
{
//Grab all files in each directory
foreach (var filePath in Directory.GetFiles(directoryName))
{
var fileName = Path.GetFileName(@filePath);
// Place each directory and its repsective files in the zip file
var entry = archive.CreateEntryFromFile(filePath, fileName);
}
}
}
しかし、これは単に0001と0002のCONTENTS私は0001と0002とそれぞれの内容を望むのです、それにサブフォルダ0001と0002を配置していません。
'Directory.CreateDirectory' _onlyはsystem_ファイル上で動作するので、すでに存在するディレクトリを再作成しています! [ZipArchiveでのディレクトリの作成](https://stackoverflow.com/questions/15133626/creating-directories-in-a-ziparchive-c-sharp-net-4-5)を参照してください。 – stuartd