C#遍歷文件夾及其子目錄的完整實(shí)現(xiàn)方法
本文實(shí)例講述了C#遍歷文件夾及其子目錄的完整實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Security.AccessControl; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("STT"); string str = @"E:\"; if (!str.EndsWith("\\")) { str += "\\"; } IList<FileInfo> lst = GetFiles(str); if (!Directory.Exists(str)) { try { Directory.CreateDirectory(str); } catch(Exception e) { Console.WriteLine(e.Message); Console.ReadKey(); return; } } if (File.Exists(str + "test.txt")) { File.Delete(str + "test.txt"); } FileInfo file = new FileInfo(str + "test.txt"); if (!file.Directory.Exists) { Directory.CreateDirectory(file.DirectoryName); } using (StreamWriter outFileWriter = new StreamWriter(str + "test.txt", false, Encoding.UTF8)) { StringBuilder sb = new StringBuilder(); foreach (FileInfo item in lst) { 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(); } private static void GetDirectorys(string strPath, ref List<string> lstDirect) { DirectoryInfo diFliles = new DirectoryInfo(strPath); DirectoryInfo[] diArr = diFliles.GetDirectories(); //DirectorySecurity directorySecurity = null; foreach (DirectoryInfo di in diArr) { try { //directorySecurity = new DirectorySecurity(di.FullName, AccessControlSections.Access); //if (!directorySecurity.AreAccessRulesProtected) //{ lstDirect.Add(di.FullName); GetDirectorys(di.FullName, ref lstDirect); //} } catch { continue; } } } /// <summary> /// 遍歷當(dāng)前目錄及子目錄 /// </summary> /// <param name="strPath">文件路徑</param> /// <returns>所有文件</returns> private static IList<FileInfo> GetFiles(string strPath) { List<FileInfo> lstFiles = new List<FileInfo>(); List<string> lstDirect = new List<string>(); lstDirect.Add(strPath); DirectoryInfo diFliles = null; GetDirectorys(strPath, ref lstDirect); foreach (string str in lstDirect) { try { diFliles = new DirectoryInfo(str); lstFiles.AddRange(diFliles.GetFiles()); } catch { continue; } } return lstFiles; } } }
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《C#遍歷算法與技巧總結(jié)》、《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》、《C#操作Excel技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見(jiàn)控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C# Winform中如何繪制動(dòng)畫(huà)示例詳解
這篇文章主要給大家介紹了關(guān)于C# Winform中如何繪制動(dòng)畫(huà)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C# Winform具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05c# 基于wpf,開(kāi)發(fā)OFD電子文檔閱讀器
這篇文章主要介紹了c# 如何基于wpf,開(kāi)發(fā)OFD電子文檔閱讀器,幫助大家更好的理解和學(xué)習(xí)使用c#的wpf技術(shù),感興趣的朋友可以了解下2021-03-03C# Csv實(shí)現(xiàn)基本的讀寫(xiě)和轉(zhuǎn)換DataTable
本文主要介紹了C# Csv實(shí)現(xiàn)基本的讀寫(xiě)和轉(zhuǎn)換DataTable,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02C# Email發(fā)送郵件 對(duì)方打開(kāi)郵件可獲得提醒
這篇文章主要為大家詳細(xì)介紹了C# Email發(fā)送郵件功能,對(duì)方打開(kāi)通知你,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11DevExpress GridControl實(shí)現(xiàn)根據(jù)RowIndex和VisibleColumnsIndex來(lái)獲取單元格
這篇文章主要介紹了DevExpress GridControl實(shí)現(xiàn)根據(jù)RowIndex和VisibleColumnsIndex來(lái)獲取單元格值,需要的朋友可以參考下2014-08-08Unity接入高德開(kāi)放API實(shí)現(xiàn)IP定位
這篇文章主要為大家介紹了Unity如何接入高德開(kāi)放API實(shí)現(xiàn)IP定位功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以參考一下2022-04-04