C# 删除指定目录下的所有文件及文件夹

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{

   class Program
   {

      #region 直接删除指定目录下的所有文件及文件夹(保留目录)
      public static void DeleteDir(string file)
      {
         try
         {
            //去除文件夹和子文件的只读属性
            //去除文件夹的只读属性
            System.IO.DirectoryInfo fileInfo = new DirectoryInfo(file);
            fileInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory;

            //去除文件的只读属性
            System.IO.File.SetAttributes(file, System.IO.FileAttributes.Normal);

            //判断文件夹是否还存在
            if (Directory.Exists(file))
            {
               foreach (string f in Directory.GetFileSystemEntries(file))
               {
                  if (File.Exists(f))
                  {
                     //如果有子文件删除文件
                     File.Delete(f);
                     Console.WriteLine(f);
                  }
                  else
                  {
                     //循环递归删除子文件夹
                     DeleteDir(f);
                  }
               }

               //删除空文件夹
               Directory.Delete(file);
               Console.WriteLine(file);
            }

         }
         catch (Exception ex) // 异常处理
         {
            Console.WriteLine(ex.Message.ToString());// 异常信息
         }
      }

      #endregion

      static void Main(string[] args)
      {
         DeleteDir(@"D:\zhidiangit3.0");
         Console.ReadKey();
      }

   }

}

版权声明:本文为qq_43381010原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。