【问题标题】:How to delete zip folder programmatically?如何以编程方式删除 zip 文件夹?
【发布时间】:2017-03-23 10:32:28
【问题描述】:

如果存在,我想删除一个 zip 文件夹。我有以下代码。

string zippath = @"C:\Neenu\Downloads.zip";
ZipFile.CreateFromDirectory(@"" + TemporaryFolder, @"" + zippath);

就在上面的代码之前,我想检查文件夹是否存在。如果存在我想删除文件夹。

【问题讨论】:

  • 看看System.IO.Directory里面的函数
  • 没有文件。存在。请注意,zip 文件夹只是一个普通文件。
  • 您要查看哪个文件夹? TemporaryFolder? zip-archive 中的文件夹(尽管您是创建新的,而不是添加的)?不清楚你想要实现什么,你能给我们一个更好的例子/解释这个问题吗?
  • 我要删除 Downloads.z​​ip

标签: c# zip


【解决方案1】:

我认为您的意思是 How to delete zip file 而不是文件夹。

在这里,这应该很容易:

File.Delete(zippath);

用于删除内部文件和目录:

System.IO.DirectoryInfo di = new DirectoryInfo(path);

foreach (FileInfo file in di.GetFiles())
{
    file.Delete(); 
}
foreach (DirectoryInfo dir in di.GetDirectories())
{
    dir.Delete(true); 
}

【讨论】:

  • File.Exists 不是必需的,实际上它会导致竞争条件错误。
  • 谢谢。是的,我想删除 zip 文件夹中的所有文件,最后也删除 ZIP 文件
  • 所以?该文件可以(理论上)由另一个进程创建。仅仅因为问题中的示例允许检查文件是否存在,它仍然是不必要的。那么为什么要添加额外的不必要的代码呢?为什么要教别人不好的做法?
  • @Stijn 从理论上讲,上面的评论可能是由机器人输入的。
  • @NeenuSurendranK - 我意识到File.Exists 不是必需的,如果文件根本不存在也不例外。
【解决方案2】:

参考下面的代码
我正在保留一个txt文件的副本,然后创建一个新的
如果你想删除文件而不创建备份而不是 jst 使用 File.Delete(path of file)

if (File.Exists(file_path))
            {
                new_file_path = file_path.Replace(".txt", " created on " + File.GetLastWriteTime(file_path).ToString("dd-MM-yyyy hh-mm-ss tt") + ".txt");
                File.Move(file_path, new_file_path);
                File.Delete(file_path);
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2018-10-26
    • 2017-01-11
    • 2012-04-09
    • 2010-10-22
    相关资源
    最近更新 更多