C#删除文件目录或文件的解决方法

时间:2022-12-13 09:25:03 


/// 删除文件和目录
public class Cleaner

{

   ///
   /// 删除指定目录以及该目录下所有文件
   ///
   /// 欲删除文件或者目录的路径
 
   public static void Clean ( string dir )

{
  
       CleanFiles ( dir );//第一次删除文件
  
       CleanFiles ( dir );//第二次删除目录
 
   }


private static void CleanFiles( string dir)

{
 
       if ( !Directory.Exists ( dir ) ) 
  
      {
          File.Delete ( dir );
          return;
  
      }
  
      else

    {

      string[] dirs = Directory.GetDirectories ( dir );

     string[] files = Directory.GetFiles ( dir );


   if ( 0 != dirs.Length )
     
     {
       
      foreach ( string subDir in dirs )
         
      {
           
       if ( null == Directory.GetFiles( subDir ) )
            
       {
                         Directory.Delete( subDir );
                
        return;
            
       }
            
       else CleanFiles ( subDir );
        
      }
     
     }
   
     if ( 0 != files.Length )
          {
     
      foreach ( string file in files )
      
      {
       
       File.Delete ( file );
               }
    
     }
    
     else Directory.Delete( dir );
   
    }

   }
}


使用方法,一句话.Directory.Delete( path, true)
以上有人可能认为很烦,没有意义,保必用递归呢.几句代码就可以了.
但我想说,使用递归的好处就是,可以,在里面做判断,比如你只想删除其中的部分条件文件,你可以这样改一下..比如你只想删除名字等到.aaa.txt的.完全可以,


foreach ( string subDir in dirs )
         
      {
           
       if ( null == Directory.GetFiles( subDir )   && subDir == "aaa.txt")
            
       {
                         Directory.Delete( subDir );
                
        return;
            
       }
            
       else CleanFiles ( subDir );
        
      }


当然我只是弄个简单例子,但希望有用.呵.

标签:C#,删除文件目录,文件
0
投稿

猜你喜欢

  • 浅谈Android中多线程切换的几种方法

    2022-03-12 06:03:17
  • Android如何让WebView中的HTML5页面实现视频全屏播放

    2023-07-29 00:32:06
  • java明文密码三重加密方法

    2022-09-01 05:59:26
  • C#实现winform中RichTextBox在指定光标位置插入图片的方法

    2022-04-04 01:50:16
  • C++ opencv实现在图片上画一条线示例代码

    2021-12-15 12:34:27
  • SpringMVC RESTFul实战案例访问首页

    2022-03-12 00:21:01
  • java学习笔记之DBUtils工具包详解

    2023-07-27 00:25:44
  • Android ListView 实现上拉加载的示例代码

    2021-09-16 18:04:17
  • Android基础知识之frame动画效果

    2022-07-10 03:46:17
  • C# API中模型与它们的接口设计详解

    2023-11-03 19:49:01
  • 关于Spring源码是如何解决Bean的循环依赖

    2023-09-16 14:15:17
  • Java使用Apache.POI中HSSFWorkbook导出到Excel的实现方法

    2022-05-24 17:14:13
  • 通过spring boot 设置tomcat解决 post参数限制问题

    2022-09-26 23:38:31
  • android自定义Camera实现录像和拍照

    2022-02-26 19:00:02
  • Java实现插入排序算法可视化的示例代码

    2021-08-06 19:35:50
  • C# 中的多态底层虚方法调用详情

    2023-11-23 16:06:58
  • Java内存模型详解

    2023-06-21 21:04:29
  • 详解关于AndroidQ获取不到imsi解决方案

    2023-02-21 14:23:50
  • MyBatis-Plus实现多数据源的示例代码

    2023-11-11 12:58:11
  • SpringBoot集成RabbitMQ的方法(死信队列)

    2023-06-10 15:12:06
  • asp之家 软件编程 m.aspxhome.com