C#遍历文件夹及其子目录的完整实现方法
本文实例讲述了C#遍历文件夹及其子目录的完整实现方法。分享给大家供大家参考,具体如下:
usingSystem; usingSystem.Collections; usingSystem.Collections.Generic; usingSystem.IO; usingSystem.Security.AccessControl; usingSystem.Text; namespaceConsoleApplication1 { classProgram { staticvoidMain(string[]args) { Console.WriteLine("STT"); stringstr=@"E:\"; if(!str.EndsWith("\\")) { str+="\\"; } IList<FileInfo>lst=GetFiles(str); if(!Directory.Exists(str)) { try { Directory.CreateDirectory(str); } catch(Exceptione) { Console.WriteLine(e.Message); Console.ReadKey(); return; } } if(File.Exists(str+"test.txt")) { File.Delete(str+"test.txt"); } FileInfofile=newFileInfo(str+"test.txt"); if(!file.Directory.Exists) { Directory.CreateDirectory(file.DirectoryName); } using(StreamWriteroutFileWriter=newStreamWriter(str+"test.txt",false,Encoding.UTF8)) { StringBuildersb=newStringBuilder(); foreach(FileInfoiteminlst) { sb.Append("\""); sb.Append(item.FullName); sb.Append("\""); sb.Append(","); sb.Append("\r\n"); } sb.Remove(sb.Length-2,2); outFileWriter.WriteLine(sb.ToString()); outFileWriter.Flush(); outFileWriter.Close(); } Console.WriteLine("END"); Console.ReadKey(); } privatestaticvoidGetDirectorys(stringstrPath,refList<string>lstDirect) { DirectoryInfodiFliles=newDirectoryInfo(strPath); DirectoryInfo[]diArr=diFliles.GetDirectories(); //DirectorySecuritydirectorySecurity=null; foreach(DirectoryInfodiindiArr) { try { //directorySecurity=newDirectorySecurity(di.FullName,AccessControlSections.Access); //if(!directorySecurity.AreAccessRulesProtected) //{ lstDirect.Add(di.FullName); GetDirectorys(di.FullName,reflstDirect); //} } catch { continue; } } } ///<summary> ///遍历当前目录及子目录 ///</summary> ///<paramname="strPath">文件路径</param> ///<returns>所有文件</returns> privatestaticIList<FileInfo>GetFiles(stringstrPath) { List<FileInfo>lstFiles=newList<FileInfo>(); List<string>lstDirect=newList<string>(); lstDirect.Add(strPath); DirectoryInfodiFliles=null; GetDirectorys(strPath,reflstDirect); foreach(stringstrinlstDirect) { try { diFliles=newDirectoryInfo(str); lstFiles.AddRange(diFliles.GetFiles()); } catch { continue; } } returnlstFiles; } } }
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#遍历算法与技巧总结》、《C#程序设计之线程使用技巧总结》、《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。