现有目录结构文件夹A
      文件夹A1
             文件A11
             文件A12
      文件夹A2
             文件A21
             文件A22
             文件夹A2a
                     文件A2a1
                     文件A2a2                   
       文件A1文件名字随便写的,就是说文件夹A里面既有文件又有文件夹,然后它的字文件夹还可能包含文件或者文件夹。
请问怎么删除文件夹A中的所有文件夹及文件?(不删除文件夹A)
还有就是怎么删除文件夹A中的所有文件保留子文件夹呢?说白了就是1.如何删除指定目录的下所有文件和文件夹?
          2.如何删除指定目录下所有文件而保留目录结构(文件夹)?有点罗嗦哈,谢谢大家!

解决方案 »

  1.   


                string path = "c:\\temp\\my";
                System.IO.Directory.Delete(path, true);
                System.IO.Directory.CreateDirectory(path);
      

  2.   

    2.如何删除指定目录下所有文件而保留目录结构(文件夹)?                 static void DeleteFileOnly(string path)
            {
                foreach (string filename in System.IO.Directory.GetFiles(path))
                {
                    System.IO.File.Delete(filename);
                }
                foreach (string directory in System.IO.Directory.GetDirectories(path))
                {
                    DeleteFileOnly(directory);
                }
            }
      

  3.   

    1.如何删除指定目录的下所有文件和文件夹? 
    string[] files=System.IO.Directory.GetFiles(path);
    foreach(string file in files)
    {
      if(Directory.Exists(file))
       Directory.Delete(file,true);
      if(File.Exists(file))
      File.Delete(file);
    }
     2.如何删除指定目录下所有文件而保留目录结构(文件夹)?  
    用递归
    1楼的方法就可以
      static void DeleteFileOnly(string path)
            {
                foreach (string filename in System.IO.Directory.GetFiles(path))
                {
                    System.IO.File.Delete(filename);
                }
                foreach (string directory in System.IO.Directory.GetDirectories(path))
                {
                    DeleteFileOnly(directory);
                }
            }
      

  4.   

    MARK
      

  5.   

            public static void DeleteDir(string aimPath)
            {
                try
                {
                    // 检查目标目录是否以目录分割字符结束如果不是则添加之
                    if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)
                        aimPath += Path.DirectorySeparatorChar;
                    // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
                    // 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法
                    // string[] fileList = Directory.GetFiles(aimPath);
                    string[] fileList = Directory.GetFileSystemEntries(aimPath);
                    // 遍历所有的文件和目录
                    foreach (string file in fileList)
                    {
                        // 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件
                        if (Directory.Exists(file))
                        {
                            DeleteDir(aimPath + Path.GetFileName(file));
                        }
                        // 否则直接Delete文件
                        else
                        {
                            File.Delete(aimPath + Path.GetFileName(file));
                        }
                    }
                    //删除文件夹
                    System.IO.Directory.Delete(aimPath, true);
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }