使用System.IO.Directory.Delete删除目录
本文关键字:Delete 删除目录 Directory IO System 使用 | 更新日期: 2023-09-27 18:17:06
我有一个c#应用程序,我必须删除一个目录:
if (buttonName == "Supprimer projet")
{
if (url != null)
{
proj.DeleteDirectory(proj.GetProjectsId(url));
var path = Path.Combine(@"C:'Projets", url);
try
{
Directory.Delete(path);
}
catch { }
return RedirectToAction("Gestion", "Admin");
}
}
,但我有这个例外the directory is not empty 'r'n
。
这个错误的原因是什么?我怎样才能修好它?
使用接受布尔值作为第二个参数并传递true的重载。这将递归地删除目录中的所有文件和目录。见http://msdn.microsoft.com/en-us/library/fxeahc5f.aspx
目录。删除方法(String, Boolean):
public static void Delete(
string path,
bool recursive
)
您可以使用Directory.Delete(dirname, true)
递归地删除目录。
但是,如果您没有删除任何文件或文件夹的权限(只读文件也会给您带来问题),这仍然会失败。
Try
Directory.Delete(path, true);
从目录中。Delete方法,第二个bool标志为
true删除path中的目录、子目录和文件;否则,假的。
使用目录的版本。删除第二个bool参数(递归)设置为true
Directory.Delete(path, true);
use
Directory.Delete(@"c:'somedirectory", true);
使用dir名称调用此函数。它将删除包含内容的目录。
static void DirDelete(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
foreach (string f in Directory.GetFiles(d))
{
File.Delete(f);
}
DirDelete(d);
Directory.Delete(d);
}
Directory.Delete(sDir);
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}