将文件删除到文件夹C#

时间:2020-05-04 14:44:43

标签: c# vb.net visual-studio visual-studio-2010

我有一个非常好奇的问题。

我正在将文件删除到文件夹中,这是算法

            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)的文件,特别是该压缩文件的某些文件夹,是不允许我删除的文件。

允许删除的算法中是否缺少某些内容?

1 个答案:

答案 0 :(得分:1)

首先,要递归删除包含所有文件和子文件夹的文件夹,您只需调用Directory.Delete(folderPath, true)。 如documentation中所述,如果文件或文件夹受保护,则可以拥有UnauthorizedAccessException。您可以执行的解决方案之一是要求您的应用程序以管理员特权启动,如答案https://stackoverflow.com/a/2818776/10115818

中所述