如题

解决方案 »

  1.   

    DirectoryInfo 类
    public FileInfo[] GetFiles (
    string searchPattern
    )返回数组的元素个数子目录递归啦
      

  2.   

    using System;
    using System.IO;class DirectoryFileCount
    {    static long files = 0;
        static long directories = 0;
        static void Main()
        {
            try
            {
                Console.WriteLine("Enter the path to a directory:");            string directory = Console.ReadLine();            Console.WriteLine("Enter a search string (for example *p*):");            string searchString = Console.ReadLine();            // Create a new DirectoryInfo object.
                DirectoryInfo dir = new DirectoryInfo(directory);            if (!dir.Exists)
                {
                    throw new DirectoryNotFoundException("The directory does not exist.");
                }            // Call the GetFileSystemInfos method.
                FileSystemInfo[] infos = dir.GetFileSystemInfos(searchString);            Console.WriteLine("Working...");            // Pass the result to the ListDirectoriesAndFiles
                // method defined below.
                ListDirectoriesAndFiles(infos, searchString);            // Display the results to the console. 
                Console.WriteLine("Directories: {0}", directories);
                Console.WriteLine("Files: {0}", files);        }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {            Console.ReadLine();
            }
        }    static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo, string SearchString)
        {
            // Check the parameters.
            if (FSInfo == null)
            {
                throw new ArgumentNullException("FSInfo");
            }
            if (SearchString == null || SearchString.Length == 0)
            {
                throw new ArgumentNullException("SearchString");
            }        // Iterate through each item.
            foreach (FileSystemInfo i in FSInfo)
            {
                // Check to see if this is a DirectoryInfo object.
                if (i is DirectoryInfo)
                {
                    // Add one to the directory count.
                    directories++;                // Cast the object to a DirectoryInfo object.
                    DirectoryInfo dInfo = (DirectoryInfo)i;                // Iterate through all sub-directories.
                    ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString);
                }
                // Check to see if this is a FileInfo object.
                else if (i is FileInfo)
                {
                    // Add one to the file count.
                    files++;            }        }
        }
    }
      

  3.   

    System.IO.Directory.GetFiles("D:\\", "*.*", SearchOption.AllDirectories).Length
    获取d盘下所有文件的数目,如果只需查找D:\根目录的文件数,把SearchOption.AllDirectories改为SearchOption.TopDirectoryOnly