日期:2014-05-18  浏览次数:20980 次

查询文件夹中的文件数量
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication4
{
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }

  private void Form1_Load(object sender, EventArgs e)
  {

  }
  public void Searchfile(string Directory)
  {
  int countfile = 0;//文件数量
  int countdir = 0;//文件夹数量
  DirectoryInfo dir = new DirectoryInfo(Directory);
  FileSystemInfo[] fi = dir.GetFileSystemInfos();//获取文件夹下的文件

  foreach (FileSystemInfo f in fi)
  {
  if (f is DirectoryInfo) //判断是否为文件夹
  {
  countdir += 1;
  Searchfile(f.FullName); //递归调用
   
  }
  else
  {
  countfile += 1;
  }
  }
  label1.Text=string.Format("该目录下一共有{0}个文件夹,有{1}文件",countdir,countfile);


   
  }

  private void button1_Click(object sender, EventArgs e)
  {
  Searchfile(textBox1.Text);

  }
  }
}



我知道这里的递归调用有点问题,每次递归都会初始countfile 和 countdir这两个量,不知道该怎么改写这段程序?

------解决方案--------------------
放到外面去,累计