说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

c#采用递归非递归两种方式遍历目录下所有文件

HTML文档下载 WORD文档下载 PDF文档下载
递归有其劣势,会遭到某些人的歧视,这里给出递归,非递归两种方案。

 

一、递归方式遍历目录

 

public void GetFiles1(string pathname){	string[] subFiles = Directory.GetFiles(pathname);	foreach (string subFile in subFiles)	{		Console.WriteLine(subFile);	}	string[] subDirs = Directory.GetDirectories(pathname);	foreach (string subDir in subDirs)	{		GetFiles1(subDir);	}}

二、非递归方式遍历目录

采用堆栈,将目录压入堆栈实现遍历。

public void GetFiles2(string pathname){	Stack<string> skDir = new Stack<string>();	skDir.Push(pathname);	while (skDir.Count > 0)	{		pathname = skDir.Pop();		string[] subDirs = Directory.GetDirectories(pathname);		string[] subFiles = Directory.GetFiles(pathname);		if (subDirs != null)		{			for (int i = 0; i < subDirs.Length; i++)			{				//string dirName = Path.GetFileName(subDirs[i]);				skDir.Push(subDirs[i]);			}		}		if (subFiles != null)		{			for (int i = 0; i < subFiles.Length; i++)			{				//string fileName = Path.GetFileName(subFiles[i]);				// 处理文件				Console.WriteLine(subFiles[i]);			}		}	}}

调用方式:

GetFiles2("c:\\windows");

 

如果希望在遍历的过程中取得目录或文件的详细信息,可以用DirectoryInfo来代替string:

DirectoryInfo di = new DirectoryInfo(pathname);

DirectoryInfo[] diinfo = di.GetDirectories();

FileInfo[] fiinfo = di.GetFiles();

 

移动开发者必须了解的10大跨平台工具 不差钱:30+收购案,170亿美元投资,IBM再度出手收购Cloudant 微软反击谷歌:Windows授权费降七成+硬件要求减少一半 [测试] 你的HTML5知识够金质吗? 基于OpenStack的虚拟机在线迁移 当64bit遇上8核心:高通发布Snapdragon 615 深圳Maker Faire创客市集:国内外创客组团来参展 腾讯正式发布QQ浏览器微信版 摩托罗拉今年推智能手表,有望提高续航能力 众筹未来必拥抱众智 果合报告:iOS趋势及手游开发六大核心策略 无视OpenStack的前车之鉴,SAP等毅然支持Cloud Foundry 轻松搞定TB级数据,开源GraphLab突破人类图计算“极限值” 英特尔至强E7 v2处理器:2倍性能提升,3倍内存容量,4倍I/O带宽 著名工业设计师Yves B&#233;har:“我们并不需要三星智能手表。” 跨平台的.NET运行环境 Mono 3.2.7发布! Google石博盟:抓住全球化和移动化的机遇 ShareSDK针对Unity发布社交化组件 2014 CocoaChina开发者大会将公布触控奖学金等高校合作计划 中低端智能手机热销,未来市场或主打价格战 Facebook开源flint:一个用D语言编写的C++静态代码分析器 AMD携手BlueStacks,下半年推出零售版双操作系统 历时6年 Github发布基于Web的桌面文本编辑器:Atom Ratchet:构建移动应用原型,新版支持Android 13个最狂帅炫酷的前沿科技研究项目 打动面试官的五大技能 乐视TV和NBA签约三年互联网电视版权 首度披露大屏运营策略 支撑4.5亿活跃用户的WhatsApp架构概览 免费使用Windows?微软推Windows 8.1 with Bing实验项目 C/C++开发者必不可少的15款编译器+IDE Amazon推荐,Facebook追踪,大数据时代的“狗仔队” 如何把光盘隐藏内容拷贝出来? xp 的productkey 有没有存在注册表里? 关于网络安全 如何把一个word的文档存到数据库中 那个是 新建一个窗口的 函数? 如何用代码实现新建一个窗口? 在线等,关于窗体隐藏的问题。 DataGrid不能显示数据问题!(急~~~~~~~~~~~~) 附加码有什么作用?? 关于在分组的报表中怎样得到每一组的人数的问题? jive的安装 mjhnet(天涯沦落人)还在吗? sdk&组件更新 急,在线等待! 高分请教,有关菜单的 请教各位一个文件问题! 向各位高手请教 请关注国内第一套真正意义上的OLAP套件! 如何在access 2000里面使用SQL语句建立表 请关注国内第一套真正意义上的OLAP套件! 关于同一个包中的引用问题! 关于数据库关联显示的问题 请问如何确定安装程序的进度 请关注国内第一套真正意义上的OLAP套件! 如何将excel中数据加入到access中去呢? 急=>救救我:怎么约束用户只能输入中文呢?(用正则表达试吗?) 关于游戏大厅的作用???(来者有分) lhb再吗? 如何作出中关村这个效果?http://product.zol.com.cn/products/product_search.php?subcatid=28 怎样把两个BYTE连接成一个short类型 关于 <select>....</select>的问题 急,请各位老大指点:popmenu为什么有时候会出现在屏幕的最左上角 如何给多个变量赋值? Lotus Domino Server 怎样在局域网(没有连入internet)中设置,目录服务器?我想用netmeeting给学生们上课 寻找大连的朋友,共同参加趋势程序设计大赛! 急=>救救我:怎么约束用户只能输入中文呢?(用正则表达试吗?) 问一个超简单的问题。 新手的问题-- dataset或datatable中可以存放dataset吗?(在线) 问一个超简单的问题。 在c/s下面如何分页呢? 网站社区近日遭到不明人物的攻击,如何解决 如何查看死锁时1204跟踪标志错误日志清单,有分相送! 流光的启动画面很漂亮啊~~请问是怎么实现的? 如果要大量生产自己的产品和在市场上销售... 难受!没有信誉了,怎么活呀?人讲的什么呀?讲得是信誉呀. XML初学者问题:刷新数据 一个汇总查询的问题?? 请问,在用VB.NET写WEB应用程序时要怎么在网页间传递变量. 大家帮帮忙! 请问高手,在用MDI和数据库相连后,怎么样把自动生成的Form当成Page? 如何利用单片机取得电话来电号码? sylvia是谁?beyond中世荣说的一生中要感谢的两个人中的那个女的(一个是黄家驹) 传入神经和传出神经又叫传入神经元和传出神经元,顾名思义至少需要两个这样的神经元.从传入神经的轴突把兴奋通过神经纤维传到下一个神经元的树突.那么神经中枢呢,是神经元吗 什么动物最适合给你的宝宝做宠物 滴血认亲事怎么回事? 《最后一课》他们该不会强迫这些鸽子也用德国话唱歌吧!这句话有什么作用? 一道二元一次方程组的问题?已知方程组 a1x+b1x=c1 a2x+b2x=c2 的解是x=3 y=4 求方程组 3a1x+2b1y=5c1 3a2x+2b2y=5c2 的解.(方程组里的1,2和a,b,c是连体的) ‘精尽人亡’怎么解释.为什么精尽就会人亡呢?YOU! 英语:at its most commonplace是什么意思but custom,we have a way of thinking,is behavior at its most commomplace我们认为风俗只是些司空见惯的行为而以为什么不是which is呢?这样我还能理解点儿 加个at 不好意思= 一道关于二元一次方程组的难题(下面是一个二元一次方程组) ax+5y=15① 甲看错了①中的a,得x=-3,y=-14x-by=-2 ② 乙看错了②中的b,得x=5,y=4求a和b. 真的存在这样的事吗? variability是什么意思 ABAC形的成语有哪些?(三个) "Sylvia"这个英文可能是什么意思?我朋友取了这个名字,帮我猜猜这个可能代表什么意思! 楼兰古国.历史文明古国.究竟为何灭亡! 一道二元一次方程组的题目在一次数学测验中,甲乙两校各有100名学生参加测试.测试结果显示,甲校男生的优分率为60%,女生的优分率为40%,全校的优分率为49.6%;乙校男生的优分率为57%,女生的 精尽人亡怎么解释?精尽人亡以前只是在小说里听说过,没想到现在在现实中也听说了,能不能分别从西医和中意的角度讲讲是怎么回事? 楼兰古国.历史文明古国.究竟为何灭亡!3Q upper-income groups翻译 sylvia用英语怎么读 俗语“不分青红皂白”中的“皂”是什么意思? 三国演义中赵云是怎么死的?有几种版本? 急需 鼓励的文章 楼兰古国的灭绝 新三国演义典韦第几集死的? 屋顶上的鸽子在"咕咕"的叫着.改成拟人句注意看题,改成拟人句!并不是某种暗示啊! 当年明月写过什么书我听说当年明月写过好多书 现在我想看看他写的关于哲学和经济方面的书,能给我列一下当年明月写过的书吗?谢谢! 西风颂赏析 西风颂赏析不想只要一个答案 大笨猪翻译是Greatly stupid 当年明月写过的书有哪写?我就知道《明朝那些事》请问还有其他的吗?开头的简介介绍说他写过经济和心理学的书, 失乐园用英语怎么说RT 英文PIG为什么有警察的意思是不是说有些POLICE饱食终日胖得像PIG 当年明月有哪些书 planet Q moves in a fairly elliptical orbit around the sun.Planet Q‘s speed is 35.2km/s when it is at its most distant point ,7.68x10^10 m from the sun.How far is planet Q from the sun at its closest point ,where tis speed is 83.0km/s? 求呼吁保护环境,保护生物的句子 “似”到底是读shi还是si?为什么用拼音输入2个都能打出来 求求一道物理题10,11题 英文pig有几种意思? 在古文中食字si与shi的区别 初二数学 2.3.4.5题 要过程 可以写到纸上拍照发过来 at the most basic 王昌龄的从军行中“楼兰”指的是? 初二数学,1.2.3题都写,写到纸上,写出过程,绝对采纳 at most=at the most 吗?急! shi这个拼音能组成多少个字、 si这个拼音能组成多少个字、 li这个拼音能组成多少个字、 ni 麻烦了、还需要组个词、每个都举4个 为什么西风颂江枫翻译的最好 神经元之间的传递:有轴突-轴突型吗? 一道二元一次方程组题目X+Y=1X·y=1/4 作文:《我为春天画张画》春天可以改为四季, 楼兰古国是怎么没绝的?楼兰古国是因为什么灭绝的? 楼兰古国的传说总听到楼兰原来是很昌盛的地方 后来落寞还成了沙漠 到底有什么故事 物理题求求求一位滑雪者以V0=20m/s的初速度沿直线冲上一倾角为53°的山坡,2s后达到最高点.如果雪橇与人的总质量为80kg,不计空气阻力,求(1)山坡对雪橇的摩擦力大小(2)滑雪者在山坡上运 在最后一课中,”他们该不会强迫这些鸽子也用德国话唱歌吧!”这句话体现了小弗 关于楼兰古国 求求你们了几个相同的电阻R串联时总电阻R串是并联总电阻R并的多少倍? Li Yang doesn't have his own room.改为同义句 Li Yang doesn't ____ his room. 楼兰古国在哪里 传说中的楼兰古国在那个位置 精尽人亡是如何解释的 有科学依据吗 at its most straightforward什么意思 谁知道湿婆手掌里的符号代表什么意思?RT,附图如下 日本:中国舰队穿过冲绳本岛与宫古岛间墨西哥糖果厂爆炸致1人死40人伤 仍三名驻阿富汗英军官涉嫌私刑处决塔利班日议员质疑安倍 称应给首相出席国会次逾2.8万人白宫网站请愿 “杀光中国澳联邦贸易部长大赞华为 支持重估宽带新加坡办第四届“亚洲群英会” 特邀名澳大利亚借调英国电信精英助力国际宽带韩军警独岛防御联合演习 抵御外敌“入韩国前科技官员称福岛土壤污染可通过微克里称美国最大威胁非对手 而是内部机日民主党前干事长年内成立新团体 被疑巴西总统批美国监听默克尔 称美反恐理吉议会否决吉加金矿开采合作备忘录 股马达加斯加大选民众盼稳定 中国应邀派逾2.8万人白宫网站请愿 “杀光中国联合国继续准备销毁叙化武 瑞典提供运默克尔打破沉默亲评美监听事件:朋友间韩军警在韩日争议岛演练登陆 旨在抵御贝卢斯科尼女友否认系同性恋 索赔千万伊核问题引美以分歧 美同意合法保留以团中央分享团海关总署署长于广洲到合肥海关考察调研是解谜关键海口出台城管执法队员“五条禁令”小儿推拿 手护健康海口市环境空气质量日报“枫之画”春季艺术展开展SAT迎来重大改革武器级核材料头部焗油最好每周一次“拆错了”最美海口人 迸发正能量工作捷报频传鱼肝油怎么吃最好听医生的太平人寿 “名家之约”再开讲江苏南通侨联召开老归侨联谊会暨征求意A股反弹告一段落微涨0.05%《窃听风云3》勇揭房地产黑幕黄港郊野公园6月向公众开放下月起洋奶粉中文标签不得在境内加贴电商推出家政服务平台 市民可从淘宝“
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘