【问题标题】:Directory is not empty error in c#C#中的目录不是空错误
【发布时间】:2012-05-30 20:13:23
【问题描述】:

在我的示例中,我试图删除特定文件夹下的文件夹。我的文件夹结构是这样的...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 中发布的问题,我尝试了这个但无法获得解决方案。根据这个问题的建议答案,当我尝试遍历目录时,它将进入无限循环。我在哪里做错了?谁能帮帮我?

【问题讨论】:

标签: c#


【解决方案1】:

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

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

path指定的目录为只读,或recursive为false且path不是空目录。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你们都没有回答这个问题。就我而言,它有时会递归地工作,有时则不会。我只想删除目录中的所有内容,文件/文件夹/目录,全部!
    • 这不是答案吗?你试过了吗?我们缺少的部分是什么?启发我们
    • 似乎目录类不喜欢你在你正在处理的同一路径上打开文件资源管理器,也许这就是问题所在。
    猜你喜欢
    • 2017-03-18
    • 1970-01-01
    • 2020-03-17
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多