c#中的目录不是空错误

时间:2012-05-30 12:10:51

标签: c#

在我的示例中,我尝试删除特定文件夹下的文件夹。我的文件夹结构如下...... C:\Export\MyDir1\MyDir2\MyDir3\MyDir4\MyDir5此结构将即时发布。下次运行我的应用程序时,它应该检查C:\Export\MyDir1目录并删除是否存在。我这样写的

private static string getExportPath(string exportTargetPath, string parentIssue)
        {
            string exportPath = Path.Combine(exportTargetPath, parentIssue);
            if (Directory.Exists(exportPath))
            {
                string[] files = Directory.GetFiles(exportPath);
                string[] dirs = Directory.GetDirectories(exportTargetPath);

                File.SetAttributes(exportTargetPath, FileAttributes.Normal);
                Directory.Delete(exportTargetPath,false);
            }

            return exportPath;
        }

我查看了这个问题中发布的问题Issue我尝试了这个问题,但无法获得解决方案。根据这个问题的建议答案,当我尝试遍历目录时,它将进入无限循环。我在哪里做错了?有谁可以帮助我?

2 个答案:

答案 0 :(得分:6)

执行递归删除:Directory.Delete(exportTargetPath, true);

MSDN明确表示如果出现以下情况,您将收到IOException:

  

path指定的目录是只读的,或递归为false,而path不是空目录。

答案 1 :(得分:4)

Directory.Delete的第二个参数由于某种原因被命名为“递归”。尝试将其设置为true。