我想打包使用SharpZipLib压缩一些文件夹。示例结构
directory1:
directory2:
file1
filde2
directory3:
directory4:
当我从这里使用c#代码打包它时:
我收到的邮件存档没有directory3
和directory4
。
我的问题是如何打包以获取包含directory3
和directory4
的存档。
答案 0 :(得分:4)
您可以让程序将文件夹添加为条目。
在每个文件夹的循环中添加以下代码。
//Here we create a path for a new entry,
//but this time with the '\' in the end, its a folder
string sEntry = sFolder.Substring(iFolderOffset) + "\\";
sEntry = ZipEntry.CleanName(sEntry);
ZipEntry zeOutput = new ZipEntry(sEntry);
zsOutput.PutNextEntry(zeOutput);
zsOutput.CloseEntry();
我还没有测试解压缩。
答案 1 :(得分:2)
FastZip fastZip = new FastZip();
fastZip.CreateEmptyDirectories = true;
// Include all files by recursing through the directory structure
bool recurse = true;
// Dont filter any files at all
string filter = null;
fastZip.CreateZip("fileName.zip", @"C:\SourceDirectory", recurse, filter);
一个警告是它无法处理UTF-8文件名。
以下是文档维基的链接: