C#遍历文件夹的实现代码

发布时间:2020-06-30编辑:脚本学堂
本文介绍下,如何用C#实现遍历文件夹的一段代码,可以得到文件夹的大小与个数,删除符合条件的文件等。有需要的朋友,参考下吧。

代码如下:
 

复制代码 代码示例:

//得到文件夹下符合条件的文件个数与大小
private void button1_Click(object sender, System.EventArgs e)
{
   try
   {
    //得到路径
    string pathtext=filepath.Text.Trim();
    //得到时间
    string filetime=dateTimePicker1.Value.ToShortDateString();
    string filetimestr=filetime+" "+"00:00:00";
    DateTime getFileTime=DateTime.Parse(filetimestr);
    //得到的路径不能为空
    if(pathtext==null||pathtext.Equals(""))
    {
     MessageBox.Show("路径不能为空","错误");
    }
    else
    {    
     //得到文件名,目录
     string[] filename=Directory.GetFiles(pathtext);
     //初始化文件计数器
     int a=0;
     //初始化文件大小
     long j=0;
     //打开等待窗口
     Sousuo ss=new Sousuo();
     ss.Show();
     //遍历文件夹
     foreach(string file in filename)
     {
      //得到文件的创建时间
      DateTime CreationTime=File.GetCreationTime(file);
      //得到符合条件的文件,某个时间段之前的文件
      if(getFileTime>CreationTime)
      {
       //得到文件的大小
       FileInfo f=new FileInfo(file);
       long len=f.Length;
       j=j+len;
       a++;
      }
     }
     //关闭窗口
     ss.Close();
     num.Text=a.ToString();//输出个数
     i=a;
     long x=j/1024/1024;
     filelen.Text=x.ToString();//得到大小
     button2.Enabled=true;
     MessageBox.Show("搜索完毕!","系统提示");
    }
   }
   catch{
   MessageBox.Show("请检查路径是否正确","系统提示");
   }

//遍历文件夹,把符合条件的文件删除
//删除按钮 by www.jb200.com
private void button2_Click(object sender, System.EventArgs e)
{
   if(MessageBox.Show("确实要删除该文件么?","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
   {
    //得到路径
    string pathtext=filepath.Text.Trim();
    //得到时间
    string filetime=dateTimePicker1.Value.ToShortDateString();
    string filetimestr=filetime+" "+"00:00:00";
    DateTime getFileTime=DateTime.Parse(filetimestr);
    //得到的路径不能为空
    if(pathtext==null||pathtext.Equals(""))
    {
     MessageBox.Show("路径不能为空","错误");
    }
    else
    {
     //得到文件名,目录
     string[] filename=Directory.GetFiles(pathtext);
     //进度条显示,得到文件数量
     progressBar1.Maximum=i;
     progressBar1.Minimum=0;
     //遍历文件夹
     foreach(string file in filename)
     {
      //得到文件的创建时间
      DateTime CreationTime=File.GetCreationTime(file);
      //得到符合条件的文件
      if(getFileTime>CreationTime)
      {
      //删除
       File.Delete(file);
       progressBar1.Step=10;
       progressBar1.PerformStep();
      }
     }
     MessageBox.Show("文件删除完毕!","系统提示");
    }

   }
   else{
   }
}