我想将所有文件夹及其内容压缩到一个zip文件中。从我研究过的(通过StackOverflow和Microsoft),Directory.CreateDirectory(Path)应该创建给定的目录。但是,我的ZipFile显示为空。Directory.CreateDirectory()不在ZipFile中创建文件夹
例如,我有一个文件夹(C:\ Users \ smelmo \ Desktop \ test),其中包含子文件夹(0001,0002)。其他文件在0001和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,只是我想0001和0002的0001和0002的内容和它们各自的内容。
'Directory.CreateDirectory' _只适用于文件system_,因此您正在重新创建已存在的目录!请参阅[在ZipArchive中创建目录](https://stackoverflow.com/questions/15133626/creating-directories-in-a-ziparchive-c-sharp-net-4-5) – stuartd