[英]c# sevenzipsharp- adding folder to new/existing archive
我有一些压缩文件夹/文件的代码:
SevenZipCompressor compressor = new SevenZipCompressor();
foreach (string listBoxItem in listBoxToCompress.Items)
{
string choosenPath = listBoxItem;
int fileCount = Directory.GetFiles(listBoxItem).Length;
int folderCount = Directory.GetDirectories(listBoxItem).Length;
if (fileCount == 0 && folderCount == 0)
{
MessageBox.Show("folder " + listBoxItem + " is empty");
}
else
{
listBox1.Items.Add("========================================");
listBox1.Items.Add("Compressing. "+listBoxItem+" Wait...");
listBox1.Refresh();
if (File.Exists(zipFile) == true)
{
compressor.CompressionMode = CompressionMode.Append;
compressor.ArchiveFormat = OutArchiveFormat.Zip;
compressor.CompressDirectory(choosenPath, zipFile);
++done;
}
else
{
compressor.CompressionMode = CompressionMode.Create;
compressor.ArchiveFormat = OutArchiveFormat.Zip;
compressor.CompressDirectory(choosenPath, zipFile);
++done;
}
listBox1.Items.Add("Done.");
listBox1.Refresh();
}
}
如您所见,我正在从列表框中提取文件夹。 对于前。 我要添加一些文件夹以压缩到一个file.zip,所以我的列表框如下所示:
+c:/test
+d:/somefolder
完整的结构是:
+c:/test
|--c:/test/testfile.exe
|--c:/test/testfolder
d:/somefolder
|--d:/somefile.exe
但是现在,压缩之后,我的存档看起来像:
+archive.zip
|--testfile.exe
|--testfolder
|--somefile.exe
如何创建此替代文件夹。 我希望存档看起来像:
+archive.zip
|-test
|----testfile.exe
|----testfolder
|-somefolder
|----somefile.exe
好吧...我应该添加这一行:
compressor.PreserveDirectoryRoot = true;
启用问题神奇地解决后,默认情况下,此选项是禁用的:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.