c# 遍历文件夹深度_C#遍历文件夹及其子目录的完整实现方法|chu

本文实例讲述了C#遍历文件夹及其子目录的完整实现方法。分享给大家供大家参考,具体如下:

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 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("rn"); } 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 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; } } } /// /// 遍历当前目录及子目录 /// /// 文件路径 /// 所有文件 private static IList GetFiles(string strPath) { List lstFiles = new List(); List lstDirect = new List(); 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; } } }

希望本文所述对大家C#程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值