【发布时间】:2019-05-08 09:22:48
【问题描述】:
我想实现一个函数,它将从一个目录中获取文件,将它们压缩为 .zip 并将该存档放在另一个目录中。问题是,如果我不止一次调用这个函数,我必须在代码中手动定义一个新的 .zip 文件的名称,所以它必须始终是唯一的。否则我得到一个异常“System.IO.IOException:'目标文件已经存在。' 我怎样才能做到这一点,每个新 .zip 的名称都会自动生成?(例如 new_zip_1、new_zip_2 等)
我使用了一个允许在所选目录中制作 .zip 文件的功能:
ZipFile.CreateFromDirectory(startPath, zipPath);
class ZipController
{
public void Zip()
{
string startPath = @"D:\Start\ToZip";
string zipPath = @"D:\NewZip";
ZipFile.CreateFromDirectory(startPath, zipPath);
}
}
【问题讨论】:
-
你可以测试文件之前是否存在,并用数字增加你的名字,直到文件不存在并创建它。
-
1.如果您不是同时创建文件,您可以在名称中包含日期和时间(例如 zip_20190508_123702 - 格式 zip_yyyyMMdd_HHmmss)。 2.如果您需要顺序编号,请看这里:codereview.stackexchange.com/a/32327/128213
标签: c# automation zip