方法1:直接删除法
DirectoryInfo di = new DirectoryInfo(string Path);di.Delete(true);
注:path是你要删除的非空目录;
true:你要删除里面所有的文件,包括文件夹和子文件夹
方法2:层级删除法
/// <summary>/// 删除非空文件夹/// </summary>/// <param name="path">要删除的文件夹目录</param>void DeleteDirectory(string path){DirectoryInfo dir = new DirectoryInfo(path); if (dir.Exists){DirectoryInfo[] childs = dir.GetDirectories();foreach (DirectoryInfo child in childs){child.Delete(true);}dir.Delete(true);}}
方法3:
递归方法(删除目录和文件)
private staticv oid DeleteDirectory(File tmpFile) {if (!tmpFile.exists()) {System.out.println("file is not exist!");return;}if (tmpFile.isDirectory()) {File[] fileList = tmpFile.listFiles();for (int i =0; i < fileList.length; i++) {if (fileList[i].isDirectory()) {DeleteDirectorys(fileList[i]);s} }} }
方法4:递归删除法(删除目录和文件)
static void DeleteDirectory(string dir) { if (Directory.GetDirectories(dir).Length == 0 && Directory.GetFiles(dir).Length == 0) { Directory.Delete(dir); return; } foreach (string var in Directory.GetDirectories(dir)) { DeleteDirectory(var); } foreach (string var in Directory.GetFiles(dir)) { File.Delete(var); } Directory.Delete(dir); }
感谢:http://blog.163.com/da7_1@126/blog/static/104072678201251411105629/