我将所有文件收集到目标目录中,并将它们添加到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
时,我收到一条错误消息,告诉我它无法创建已经存在的内容。即使我在存档文件夹中硬编码而不是从配置中获取它,也会发生这种情况。
我这是怎么了?
答案 0 :(得分:1)
您需要指定目标文件名以及目录:
File.Move("file.zip", Path.Combine(archiveFolder, "file.zip"));