我有一个非常好奇的问题。
我正在将文件删除到文件夹中,这是算法
System.IO.DirectoryInfo di = new DirectoryInfo(folderPath);
foreach (FileInfo file in di.GetFiles())
{
file.Delete();
}
foreach (DirectoryInfo dir in di.GetDirectories())
{
dir.Delete(true);
}
我选择目录,然后算法删除:文件夹,子文件夹以及所有相关的东西,都没有问题。
当我下载包含文件夹和子文件夹的压缩文件时,会发生问题(必须指出的是,压缩文件中的数据实际上是我应该删除的文件。)
并且软件报告错误:访问被拒绝
事实是我不明白,压缩后(.zip)的文件,特别是该压缩文件的某些文件夹,是不允许我删除的文件。
允许删除的算法中是否缺少某些内容?
答案 0 :(得分:1)
首先,要递归删除包含所有文件和子文件夹的文件夹,您只需调用Directory.Delete(folderPath, true)
。
如documentation中所述,如果文件或文件夹受保护,则可以拥有UnauthorizedAccessException
。您可以执行的解决方案之一是要求您的应用程序以管理员特权启动,如答案https://stackoverflow.com/a/2818776/10115818