控制台应用程序在删除目录时冻结且没有错误[关闭]

Posted

技术标签:

【中文标题】控制台应用程序在删除目录时冻结且没有错误[关闭]【英文标题】:Console application freezes with no error while deleting directory [closed] 【发布时间】:2019-08-25 09:48:25 【问题描述】:

在将目录打包为 ZIP 后删除目录时遇到问题。如果我只创建 ZIP 或者我只删除目录,一切都很好。当我想在将目录打包到 ZIP 后删除目录时,就会出现问题。应用程序在删除时冻结,没有错误。我检查了这发生在 Directory.Delete() 方法上。调试器无错误退出,但应用程序仍在运行。

我尝试在删除目录之前使用第三方 dll 进行 ZIP 或更改文件属性,但没有解决问题。

下面是我的代码:

 using (ZipFile zip = new ZipFile())
 
      zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
      zip.AddDirectory(pathFrom);
      zip.Save(pathTo);
 

 Directory.Delete(pathFrom, true); //Crashes here!

我以不同的方式重建了 Directory.Delete() 方法,但没有成功:

 string[] files = Directory.GetFiles(pathFrom);
 string[] directories = Directory.GetDirectories(pathFrom);


 foreach (string file in files)
 
      File.SetAttributes(file, FileAttributes.Normal);
      File.Delete(file); //Crashes here now!
 

 foreach (string dir in directories)
 
      DeleteDirectory(dir);
 

 Directory.Delete(pathFrom, false);

这里有什么问题?

【问题讨论】:

究竟要删除多少个目录/文件夹(给定true 表示它是递归删除)? 代码说 Directory.Delete() 崩溃,文本说它冻结。巨大差距。在实践中,每当您对文件执行任何操作时,您总是需要 try/catch。暂时禁用已安装的反恶意软件产品以诊断冻结问题。 【参考方案1】:

问题是 Acronis 勒索软件。删除这个软件解决了这个问题。

【讨论】:

以上是关于控制台应用程序在删除目录时冻结且没有错误[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

按下按钮时iOS tableview冻结,控制台没有错误

iOS应用轮换导致冻结[关闭]

关闭模式视图控制器偶尔冻结应用程序,swift 3

退出时删除 QQuickView 会导致 Qt 应用程序冻结

当mysq启动时出现错误1067时应如何解决

从按钮执行 segue 时应用程序冻结