【问题标题】:c# move files to zip folder? [duplicate]c#将文件移动到zip文件夹? [复制]
【发布时间】:2014-08-15 00:29:17
【问题描述】:

我要做的是通过右键单击 Windows 资源管理器创建一个 zip 文件夹,然后新建 -> 压缩 (zip) 文件夹。

然后我想使用类似 My.Computer.Filesystem.MoveFile("C:\From.jpg", "C:\ZipFolder.zip\To.jpg", true)

但是我得到一个错误“同名的文件或目录已经存在”。

有没有简单的方法来做到这一点?我认为 Windows 支持 zip 文件夹,但似乎不知道我正在尝试将文件移动到 zip 文件夹,而是将 zip 视为文件并认为我正在覆盖它或其他东西。

【问题讨论】:

  • 旁注:Windows 从不支持“zip 文件夹” - 存在文件系统级压缩和 Zip 文件创建/在资源管理器中打开 ZIP 文件以查看内容...
  • 如果这个问题是重复的,至少提供之前回答的链接。
  • 如果您没有看到自动“此问题已在此处找到答案:”在您的帖子中发表评论,请在meta.stackoverflow.com 上提问,为什么它没有显示给您。这是链接以防万一stackoverflow.com/questions/905654/zip-folder-in-c-sharp

标签: c# file-io zip


【解决方案1】:

DotNetZip 中,将文件添加到现有 zip 非常简单可靠。

DotNetZip 是一个快速、免费的类库和工具集,用于处理 zip 文件。使用 VB、C# 或任何 .NET 语言轻松创建、提取或更新 zip 文件。

DotNetZip 是 .NET 的最佳开源 ZIP 库。

using (var zip = ZipFile.Read(nameOfExistingZip))
{
    zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
    zip.AddFile(additionalFileToAdd);
    zip.Save();
}

如果要为该新文件指定目录路径,请为 AddFile() 使用不同的重载。

using (var zip = ZipFile.Read(nameOfExistingZip))
{
    zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
    zip.AddFile(additionalFileToAdd, "directory\\For\\The\\Added\\File");
    zip.Save();
}

如果要添加一组文件,请使用 AddFiles()。

using (var zip = ZipFile.Read(nameOfExistingZip))
{
    zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
    zip.AddFiles(listOfFilesToAdd, "directory\\For\\The\\Added\\Files");
    zip.Save();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多