遍历目录下所有各级子目录文件的全路径

public System.Collections.Specialized.StringCollection GetAllFiles(string rootdir)
{

System.Collections.Specialized.StringCollection result = new System.Collections.Specialized.StringCollection();

GetAllFiles(rootdir,result);

return result;
}


public void GetAllFiles(string parentDir,System.Collections.Specialized.StringCollection result)
{

string[] dir = System.IO.Directory.GetDirectories(parentDir);
for (int i=0;i<dir.Length;i++)
GetAllFiles(dir[i],result);

string[] file = System.IO.Directory.GetFiles(parentDir);
for (int i=0;i<file.Length;i++)
result.Add(file[i]);

}


具体调用如下:


private void button1_Click(object sender, System.EventArgs e)
{
System.Collections.Specialized.StringCollection result = GetAllFiles(@"c:/myfiles/");

for (int i=0;i<result.Count;i++)
MessageBox.Show(result[i]);
}




-----------------------------------------------------------
用2个循环就解决了
string[] dir = System.IO.Directory.GetDirectories(parentDir);
for (int i=0;i<dir.Length;i++)
{
GetAllFiles(dir[i],result);
string[] file = System.IO.Directory.GetFiles(parentDir);
for (int i=0;i<file.Length;i++)
{
result.Add(file[i]);
}
}


-----------------------------------------------------------
//递归列出目录下的所有文件和子目录
  
   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--;//缩进减一
  
   }



------------------------



System.Reflection.Assembly.GetAssembly.Location
//C#的控制台程序中,如何得到当前程序的路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值