C#實現(xiàn)指定路徑,掃描該路徑下所有文件仑最,統(tǒng)計文件類型及其對應數(shù)量
using System;
using System.Collections.Generic;
using System.IO;
namespace FileExtensionScan
{
class Program
{
Dictionary<String, int> pList = new Dictionary<String, int>(); //字典形式{后綴:數(shù)量}
int fileNum = 0;
public void GetFileNum(string srcPath)
{
try
{
// 得到源目錄的文件列表绎签,該里面是包含文件以及目錄路徑的一個數(shù)組
string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
// 遍歷所有的文件和目錄
foreach (string file in fileList)
{
// 先當作目錄處理如果存在這個目錄就重新調(diào)用GetFileNum(string srcPath)
if (Directory.Exists(file))
GetFileNum(file);
else
{
fileNum++;
string ext = Path.GetExtension(file).ToLower();
if (pList.ContainsKey(ext) == false)
pList.Add(ext, 1);
else
pList[ext]++;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
static void Main(string[] args)
{
Program p = new Program();
p.GetFileNum(args[0]); //獲取目錄路徑冰更,第一個命令行參數(shù)
Console.WriteLine("掃描文件數(shù)目" + p.fileNum); //掃描文件總數(shù)
foreach (var dic in p.pList)
{
Console.WriteLine("{0} {1}", dic.Key, dic.Value);
}
}
}
}