c# - 如何自动更改新 .zip 文件的名称?

标签 c# automation zip

我想实现一个功能,它将从一个目录中获取文件,将它们压缩为 .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);
    }
}

最佳答案

如果 ZIP 名称中不必是递增数字,那么我会使用日期和时间。它的代码更少,而且更不像两次获得相同的文件名。

以文件名友好格式获取日期和时间:

DateTime.Now.ToString("yyyy-mm-dd_hh-mm-ss")

因此您的代码可能如下所示:

class ZipController
{
    public void Zip()
    {
        string startPath = @"D:\Start\ToZip";
        string dateTime = DateTime.Now.ToString("yyyy-mm-dd_hh-mm-ss");
        string zipPath = @"D:\NewZip\new_zip_" + dateTime + ".zip";

        ZipFile.CreateFromDirectory(startPath, zipPath);
    }
}

关于c# - 如何自动更改新 .zip 文件的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56037446/

相关文章:

c# - .rdl 报告未在 C# 中显示

html - 如何使用元素的 DOM 层次结构(父元素)访问元素?

javascript - 使用pdfMake创建PDF后如何下载zip文件

android - 无法提取从 google play 应用程序下载的 obb 文件

c# - 根据 C# 中的变量从对象列表中返回对象

c# - 带有泛型的 NUnit 测试用例

c# - 处理 BigInteger 问题

javascript - 如何使用 document.getElementById(someid).onclick 来标记 a

java - Maven 在某些组中运行测试

linux - 使用 shell 将目录中的文件压缩为 zip 文件