c# - 由于代码运行异步,获取文件已存在错误
问题描述
如下代码运行异步,使用相同名称创建了 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);
}
}
解决方案
好的,所以我不确定您创建的 zip 文件或添加到 zip 文件中的文件是否有问题,所以我正在添加检查它们是否存在的代码
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);
}
}
这应该可以,但是您还应该检查哪个是您真正需要的并且只使用那个
推荐阅读
- javascript - 根据创建过滤指定产品
形式。结合Javascript和PHP制作过滤器 - python - 如何从python中的bigquery结果中获取所有行?
- mongodb - 将 PEM 证书转换为 PKCS12 格式
- python - cron 没有启动工作的 python 脚本
- ios - 发布请求在 android 中有效,但在 iOS 中无效
- django - 得到了一个意外的关键字参数“update_fields”,用户需要有一个字段“id”的值才能使用这种多对多关系
- macos - vscode:为什么我的标题栏和侧边栏是绿色的?
- php - ODBC 连接到 Linux 服务器上的 SQL Server PHP 错误
- react-native - 如何向另一个功能组件返回响应
- sql - 如何使用 QueryBuilder 编写正确的查询