[C #] recursively traversing folders,
// <Summary> /// recursively retrieve files in the folder directory /// </summary> /// <param name = "pathName"> folder to be recursively traversed </param >/// <param name = "fileRule"> traversal rule "delegate" </param> public static void LoopFolder (string pathName, action <FileInfo> fileRule) {if (string. isNullOrEmpty (pathName) throw new ArgumentNullException (pathName); Queue <string> _ pathQueue = new Queue <string> (); _ pathQueue. enqueue (pathName); while (_ pathQueue. count> 0) {st Ring _ path = _ pathQueue. Dequeue (); DirectorySecurity _ pathSecurity = new DirectorySecurity (_ path, AccessControlSections. Access); if (! _ PathSecurity. areAccessRulesProtected) // whether the folder permission can be accessed {DirectoryInfo _ directoryInfo = new DirectoryInfo (_ path); foreach (DirectoryInfo diChild in _ directoryInfo. getDirectories () {_ pathQueue. enqueue (diChild. fullName);} foreach (FileInfo file in _ directoryInfo. getFiles () {fileRule (file) ;}}} use CSharpToolV2.LoopFolder (@ "C: \ Users \ Administrator \ Downloads \", (FileInfo file) ==>{ if (file. extension. equals (". xls ") // obtain the excel file {Console. writeLine (string. format ("============={ 0 }================", file. fullName ));}});
Code Effect