想获取一个指定目录下文件的个数(不是文件夹的个数)。
如果文件夹中还有文件夹并且不知道文件夹中是什么类型的文件,想获取文件个数怎么办? 
谢谢了!

解决方案 »

  1.   

    DirectoryInfo d = new DirectoryInfo(@"C:\");   
    FileInfo[] fi= d.GetFiles();
    然后用fi.Length获得个数如果要知道所有文件个数 递归文件夹即可。
      

  2.   

            private int getfilecount(string path)
            {
                System.IO.DirectoryInfo dir =new DirectoryInfo(path);
                int count = dir.GetFiles().Length;
                foreach (DirectoryInfo d in dir.GetDirectories())
                {
                    count += getfilecount(d.FullName);
                }
                return count;
            }
      

  3.   

    string[]fileNames=System.IO.Directory.GetFiles(directoryies,"*",SearchOption.AllDirectories);
    fileNames.Length就是文件数
      

  4.   


            static void Main(string[] args)
            {
                DirectoryInfo dir = new DirectoryInfo("D:\\");
                filecount += dir.GetFiles().Length;
                DirectoryInfo[] dirs = dir.GetDirectories();
                foreach (DirectoryInfo di in dirs)
                    GetFileCount(di);
                Console.WriteLine(filecount);
            }
            private static int filecount = 0;
            private static void GetFileCount(DirectoryInfo di)
            {
                filecount += di.GetFiles().Length;
                if (di.GetDirectories().Length > 0)
                    foreach (DirectoryInfo dir in di.GetDirectories())
                        GetFileCount(dir);
            }
      

  5.   

    Directory.GetFiles(path)
    必定要递归子文件夹
      

  6.   


    根本不用递归,有现成的方法,你看我3楼的帖子
    还有,命名用Directory的静态方法就行了,楼上几位还去用DirectoryInfo的实例方法,哪个简单、有效,楼主有自己的判断
      

  7.   

    能人就是能人呀!
    我查了一下MSDN发现:此方法在 .NET Framework 2.0 版中是新增的
    确实不错呀!
      

  8.   


    类似于dos下的  dir *.* /s 呵呵.不错.