本示例效果如下:根据指定的文件夹路径如E:\\a\\b\\d向下遍历删除其下的子文件及子目录删除其本身向上遍历删除其空的父目录
using System.IO;
protected void Button1_Click(object sender, EventArgs e){ string dir = "E:\\a\\b\\d"; //string dir = "E:\\a"; string pdir = Directory.GetParent(dir).FullName; DeleteFolder(dir); DeletePEmptyFolder(pdir);}
public void DeleteFolder(string dir){ if (Directory.Exists(dir)) { foreach (string d in Directory.GetFileSystemEntries(dir)) { if (File.Exists(d)) { FileInfo fi = new FileInfo(d); if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1) fi.Attributes = FileAttributes.Normal; File.Delete(d);//直接删除其中的文件 } else DeleteFolder(d);//递归删除子文件夹 } Directory.Delete(dir);//删除已空文件夹 }}
public void DeletePEmptyFolder(string dir){ if (Directory.GetDirectories(dir).Length == 0) { string pdir = Directory.GetParent(dir).FullName; if (Directory.Exists(dir)) Directory.Delete(dir); DeletePEmptyFolder(pdir); }}