<summary>////Recursively Get folder directory files///</summary>//<param name= "PathName" > folders that need to be traversed recursively lt;/param>//<param name= "filerule" > Traverse rule "delegate" </param> public static void Loopfolder (String p Athname, action<fileinfo> filerule) {if (string. IsNullOrEmpty (PathName)) throw new ArgumentNullException (PathName); queue<string> _pathqueue = new queue<string> (); _pathqueue.enqueue (PathName); while (_pathqueue.count > 0) {string _path = _pathqueue.dequeue (); DirectorySecurity _pathsecurity = new DirectorySecurity (_path, accesscontrolsections.access); if (!_pathsecurity.areaccessrulesprotected)//folder permissions are accessible {DirectoryInfo _directoryinfo = New DirectoryInfo (_path); foreach (DirectoryInfo dichild in _directoryinfo.getdirectories ()) { _pathqueue.enqueue (Dichild.fullname); } foreach (FileInfo file in _directoryinfo.getfiles ()) {file Rule (file); }}}} for example, use Csharptoolv2.loopfolder (@ "C:\Users\Administrator\Downloads\", (FileInfo file) + = {if (file. Extension.equals (". xls"))//Gets the Excel type file {Console.WriteLine (string. Format ("============{0}==============", file. FullName)); } });
Code effects
[C #] recursively traverse a folder