遍历文件夹及文件
遍历文件夹及文件
using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lab { class Program { static void Main(string[] args) { ProcessDir(@"F:\Todo\MVC", 1); Console.ReadLine(); } const int HowDeepToScan = 3; ArrayList dirList = new ArrayList(); static int numTopFolder; static string rootDir = @"F:\Todo\MVC"; static int numFile; public static void ProcessDir(string sourceDir, int recursionLvl) { if (numFile == 0) { numTopFolder = Directory.GetDirectories(rootDir).Length; } if (recursionLvl <= HowDeepToScan) { // Process the list of files found in the directory. string[] fileEntries = Directory.GetFiles(sourceDir); foreach (string fileName in fileEntries) { // do something with fileName Console.WriteLine("file:"+fileName); if(numFile % 3 == 0 & numFile!=0) { Console.WriteLine("Update on batch1"); } numFile++; } // Recurse into subdirectories of this directory. string[] subdirEntries = Directory.GetDirectories(sourceDir); foreach (string subdir in subdirEntries) // Do not iterate through reparse points if ((File.GetAttributes(subdir) & FileAttributes.ReparsePoint) != FileAttributes.ReparsePoint) { Console.WriteLine(subdir.ToString() + ";recursionLvl:" + recursionLvl); if (recursionLvl == 1) { numTopFolder--; } ProcessDir(subdir, recursionLvl + 1); } } if (numTopFolder==0 & string.Equals(rootDir,sourceDir)) { Console.WriteLine("Update on batch2" + ";numFile:"+numFile); } } } }