【问题标题】:Zip up collection of files and move to target location压缩文件集合并移动到目标位置
【发布时间】:2019-08-09 00:32:00
【问题描述】:

我将我的所有文件收集到一个目标目录中,并将它们添加到一个 zip 文件夹中。一旦制作了这个 zip 并且不再需要添加文件,我想将此 zip 文件夹移动到另一个位置。

这是我执行上述所有操作的代码:

var targetFolder = Path.Combine(ConfigurationManager.AppSettings["targetFolder"], "Inbound");
var archiveFolder = ConfigurationManager.AppSettings["ArchiveFolder"];

// get files
var files = Directory.GetFiles(targetFolder)
    .Select(f => new FileInfo(f))
    .ToList();

// places files into zip
using (var zip = ZipFile.Open("file.zip", ZipArchiveMode.Create))
{
    foreach (var file in files)
    {
        var entry = zip.CreateEntry(file.Name);
        entry.LastWriteTime = DateTimeOffset.Now;

        using (var stream = File.OpenRead(file.ToString()))
        using (var entryStream = entry.Open())
            stream.CopyTo(entryStream);
    }
}

// move the zip file
File.Move("file.zip", archiveFolder );

我跌倒的地方是 zip 文件夹的移动。当我的代码到达File.Move 时,我收到一条错误消息,告诉我它无法创建已经存在的东西。即使我在存档文件夹位置硬编码而不是从我的配置中获取它,也会发生这种情况。

我做错了什么?

【问题讨论】:

    标签: c# .net io zip


    【解决方案1】:

    您需要指定目标文件名和目录:

    File.Move("file.zip", Path.Combine(archiveFolder, "file.zip"));
    

    【讨论】:

      猜你喜欢
      • 2016-04-20
      • 1970-01-01
      • 2019-04-08
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多