下面的代码异步运行,使用相同的名称创建了2个zip文件,并尝试复制目标位置时出现错误,
文件'C:\ Temp \ test_20181024032123496.Zip'已经存在。
如何跳过这种情况?谢谢!
private static async Task<bool> GenerateZipFile(FileSystemInfo file1, string zipFilePath)
{
try
{
using (var zip = ZipFile.Open($"{zipFilePath}\\test_{DateTime.UtcNow:yyyyMMddHHmmssfff}.Zip", ZipArchiveMode.Create))
{
zip.CreateEntryFromFile(file1.FullName, file1.Name, CompressionLevel.Optimal);
}
}
catch (Exception ex)
{
Console.Write(ex);
}
}
答案 0 :(得分:1)
好吧,所以我不确定您所创建的zip文件或要添加到zip文件中的文件是否存在问题,因此我要添加代码来检查它们是否存在< / p>
private static async Task<bool> GenerateZipFile(FileSystemInfo file1, string zipFilePath)
{
try
{
string newZipFilePath = $"{zipFilePath}\\test_{DateTime.UtcNow:yyyyMMddHHmmssfff}.Zip"
if (!System.IO.File.Exists(newZipFilePath))
{
using (var zip = ZipFile.Open(newZipFilePath, ZipArchiveMode.Create))
{
if(System.IO.File.Exists(file1.FullName))
{
zip.CreateEntryFromFile(file1.FullName, file1.Name, CompressionLevel.Optimal);
}
}
}
}
catch (Exception ex)
{
Console.Write(ex);
}
}
这应该可行,但是您还应该检查实际需要的是哪一个,并且只能使用那个