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

C# Directory.Delete(path,true)总是给出错误-ASP.NET 3.5 MVC,c#,asp.net-mvc,directory,.net-3.5,C#,Asp.net Mvc,Directory,.net 3.5,我正在使用MVC ASP.NET 3.5,我正在尝试使用标准的.NET方法删除一个文件夹,其中包含我在.NET 2.0中一直使用的所有文件 我发现第一个答案似乎不起作用。 我试过这个 try { Directory.Delete(path, true); } catch (IOException) { Thread.Sleep(0); Directory.Delete(path, true); } 而且有效,但我不明白为什么。 有什么建议吗 编辑:我有权限,因为所有文件

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

我发现第一个答案似乎不起作用。
我试过这个

try
{
    Directory.Delete(path, true);
}
catch (IOException)
{
    Thread.Sleep(0);
    Directory.Delete(path, true);
}
而且有效,但我不明白为什么。
有什么建议吗


编辑:我有权限,因为所有文件和子文件夹都已删除。但我有一个异常“Directory is non-empty”和path。如果我使用提供的代码,则可以正常工作。

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

即使使用浏览器,有时也会显示此消息(至少对我而言)。先删除文件,然后删除文件夹怎么样

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),但我认为主要原因是:因为文件夹已损坏,或者某个进程正在锁定它并阻止删除


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

尝试使用这个方法,它对我有用

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

我有权限,因为所有文件和子文件夹都已删除。但我有一个异常“Directory is non-empty”和path。如果我使用所提供的代码,则毫无例外。您的方法是有效的,但问题是如果您有子文件夹,则必须删除它们。而且,仍然不能解释这个错误。