控制台应用程序在删除目录时冻结且没有错误[关闭]
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 勒索软件。删除这个软件解决了这个问题。
【讨论】:
以上是关于控制台应用程序在删除目录时冻结且没有错误[关闭]的主要内容,如果未能解决你的问题,请参考以下文章