【问题标题】:C# ZipFile: zip only the contents of a folderC# ZipFile:仅压缩文件夹的内容
【发布时间】:2016-08-16 01:31:30
【问题描述】:

我正在使用 ZipFile.CreateFromDirectory 方法在 C# 中压缩目录:

private void createZIP()
{
    string startPath = @"c:\example\start";
    string zipPath = @"c:\example\result.zip";
    ZipFile.CreateFromDirectory(startPath, zipPath,  CompressionLevel.Fastest, true); 
}

它一般都可以工作,但我只想要 zip 文件中 /start/ 文件夹的内容,而不是目录本身。

现在:

result.zip
--start
---- file1.txt
---- file2.txt

我想要它:

result.zip
-- file1.txt
-- file2.txt

我怎样才能做到这一点?

【问题讨论】:

    标签: c# .net zipfile


    【解决方案1】:

    ZIPFile.CreateFromDirectory 的最后一个参数(您为其传递值 true)确定目录本身是否应作为 ZIP 的根目录包含在内。如果您将其更改为 false,它应该可以按您的意愿工作。

    ZipFile.CreateFromDirectory(startPath, zipPath,  CompressionLevel.Fastest, false); 
    

    【讨论】:

    • 哦,真糟糕。我跳过了文档中的那部分。谢谢,它按预期工作。
    【解决方案2】:

    如果您想将功能从简单压缩扩展到条件压缩

    使用以下链接部分[从现有 Zip 文件中添加或删除文件]

    Creating-Zip-Files-Easily-in-NET

    并使用以下链接创建空目录

    creating-directories-in-a-ziparchive-c-sharp-net-4-5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 2010-10-28
      相关资源
      最近更新 更多