一个简单的递归算法

 //递归列出目录下的所有文件和子目录
   indent=0;  
   public void ListFiles( FileSystemInfo fileinfo )
  
   {
  
   if( ! fileinfo.Exists ) return;
  
   DirectoryInfo dirinfo = fileinfo as DirectoryInfo;
  
   if( dirinfo == null ) return; //不是目录
  
   indent++;//缩进加一
  
   FileSystemInfo [] files = dirinfo.GetFileSystemInfos();
  
   for( int i=0; i< i++)>遍历目录下所有文件、子目录
  
   {
  
   FileInfo file = files[i] as FileInfo;
  
   if( file != null ) // 是文件
  
   {
  
   this.richTextBox1.Text+=(WriteSpace(indent)+"|-"+
  
   file.Name + "\t" + ConvertToKByte(file.Length)+"\r" );
  
   }
  
   else //是目录
  
   {
  
   this.richTextBox1.Text+=(WriteSpace(indent)+"+"+files[i].FullName+"\r");
  
   ListFiles( files[i] ); //对子目录进行递归调用
  
   }
  
   }
  
   indent--;//缩进减一
  
   }
原文地址:https://www.cnblogs.com/oisiv/p/199002.html