【问题标题】:Recursively deleting of directories in C# throws an exception在 C# 中递归删除目录会引发异常
【发布时间】:2014-01-29 11:19:29
【问题描述】:

我正在尝试删除一个目录及其所有内容,如下所示:

    private static void CleanOrCreateDirectory(string directory)
    {
        if (Directory.Exists(directory)) Directory.Delete(directory, true);
        Directory.CreateDirectory(directory);
    }

这应该是标准方式,在对 SO 相关问题的各种答案中提出。但是,它不起作用。我明白了:

System.IO.IOException : The directory is not empty.

嗯,当然不是空的,这就是重点!我做错了什么?

【问题讨论】:

  • 你想删除哪个目录?
  • 看起来类似于这个问题:stackoverflow.com/questions/329355/…
  • @SergeyLitvinov,一个本地目录Data,包含测试生成的一些文件和文件夹。
  • 问题可能是某些进程甚至你的进程使用了​​该目录中的文件,所以它可以删除它们,所以目录也可以被删除。另一个问题可能是它的文件具有只读属性
  • 我会为此使用SHFileOperation

标签: c# .net directory


【解决方案1】:

在此处调用Directory.Delete 时有一个 IOException 原因列表:http://msdn.microsoft.com/en-us/library/fxeahc5f.aspx

它列出了您获得 IOException 的所有不同原因,人们会认为原因已在此处列出!

【讨论】:

    【解决方案2】:

    事实证明,Directory.Delete(name, true) 的实现并没有做到它在锡上所说的那样。有关解决方法,请参阅Cannot delete directory with Directory.Delete(path, true) 接受的答案。

    感谢@HaunsTM

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 2011-03-11
      • 2010-10-21
      相关资源
      最近更新 更多