C#遍历文件夹及其子目录的完整实现方法
本文实例讲述了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<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> /// 遍历当前目录及子目录 /// </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; } } }
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#遍历算法与技巧总结》、《C#程序设计之线程使用技巧总结》、《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。
上一篇:c#通用登录模块分享
栏 目:C#教程
下一篇:C#实现顺序表(线性表)完整实例
本文标题:C#遍历文件夹及其子目录的完整实现方法
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/6390.html
您可能感兴趣的文章
- 01-10C#删除只读文件或文件夹(解决File.Delete无法删除文件)
- 01-10C#遍历文件夹后上传文件夹中所有文件错误案例分析
- 01-10C#编程实现获取文件夹中所有文件的文件名
- 01-10C#中用foreach语句遍历数组及将数组作为参数的用法
- 01-10C#程序中创建、复制、移动、删除文件或文件夹的示例
- 01-10Windows中使用C#为文件夹和文件编写密码锁的示例分享
- 01-10在C#中global关键字的作用及其用法
- 01-10C#如何遍历Dictionary
- 01-10详解C#中的定时器Timer类及其垃圾回收机制
- 01-10C#中哈希表(HashTable)用法实例详解(添加/移除/判断/遍历/排序等
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频 器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10C#中split用法实例总结
- 01-11ajax实现页面的局部加载
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10delphi制作wav文件的方法
- 01-10SublimeText编译C开发环境设置
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 04-02jquery与jsp,用jquery