C#删除目录和目录下的所有文件

这里说四种方法:
 
方法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);
}
posted @ 2013-08-31 16:40  邹邹  Views(768)  Comments(0)    收藏  举报