Directory.Delete(path,true)总是给出错误 - ASP.NET 3.5 MVC

时间:2010-02-10 09:19:41

标签: c# asp.net-mvc directory .net-3.5

我正在使用MVC ASP.NET 3.5,我正在尝试使用我在.NET 2.0中一直使用的标准.NET方法删除包含所有文件的文件夹。

我找到this,但第一个答案似乎不起作用 我试过这个

try
{
    Directory.Delete(path, true);
}
catch (IOException)
{
    Thread.Sleep(0);
    Directory.Delete(path, true);
}

并且有效,但我无法理解为什么 有什么建议吗?

修改:我已获得权限,因为所有文件和子文件夹都已删除。但我得到了Exception“目录非空”的路径。如果我使用提供的代码,则无任何例外。

3 个答案:

答案 0 :(得分:1)

即使使用资源管理器,有时也会显示此消息(至少对我而言)。如何先删除文件然后删除文件夹?

string[] files = Directory.GetFiles(some_path, "", SearchOption.AllDirectories);
foreach (string pathFile in files)
{
    File.Delete(pathFile);
}
Directory.Delete(some_path);

如果您有子幻灯片,可以使用SearchOptions但如果没有,则使用

string[] files = Directory.GetFiles(some_path);

希望这有帮助。

修改

出现这个问题的原因很多(来自MS),但我认为主要是:因为文件夹已损坏或某些进程锁定它并阻止删除。

一个不优雅的解决方案可能是:首先删除文件,然后删除子文件夹,最后一步删除主文件夹。

答案 1 :(得分:1)

尝试使用它对我有用

  File.SetAttributes(DownloaddirPath & "\" & directoryName, FileAttributes.Normal)
  Directory.Delete(DownloaddirPath & "\" & directoryName, True)

答案 2 :(得分:0)

您是否有足够的权限删除该文件夹?另外,正如另一个问题所说,确保目录为空。