繁体   English   中英

C#sevenzipsharp-将文件夹添加到新/现有存档

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM