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

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();

 

脑洞大开:《80天环游地球》同名游戏诞生记 2014微信开发者大会 最后30个参会名额! 林仕鼎创业产品“云校”正式上线:让教育个性化、多元化、均衡化 14岁少年开发者:伍兴云的智能家居“梦” Xcode 6 Beta 6发布闹乌龙,着重改进Swift语言 当API遇到云平台,开发者面临的新抉择! 《近匠》欧朋流量宝,工具类应用开发之道 《近匠》Bmob:免费无限制的公有云服务 MDCC应用征集最新动态:3D手游成热点、硬件种类丰富 闪迪Ultra II SSD:采用TLC闪存,最低价为79.99美元 现有技能不浪费!基于Titanium的跨平台游戏引擎Platino 跳过开发者,专注补Bug的iOS 8 Beta 6悄然发布 集群管理可以很简单,Google又放大招 应用内直接打车:Uber面向第三方开发者开放API 百万美元巨奖!英特尔启动感知计算挑战赛 IBM 2014技术峰会在京开幕! OpenGL 4.5规范标准发布,大大提升API性能! 更萌更贱:Flappy Bird开发者推虐心新作Swing Copters 学习的革命:AR增强现实遇到儿童应用 颠覆旧概念,IBM Bluemix开启云开发时代 专访企业QQ SaaS团队,谈企业级LNMP架构设计 《近匠》Coding:将软件开发搬到云上 小米与美视频游戏服务Ouya合作 进军国内客厅 新工具Get!轻松实现2D画面动态光影的Sprite Lamp 一周消息树:罗升阳的Android之旅 手游不易:GungHo 3.44亿美元售Supercell股权 周末去哪儿 当然是去2014微信开发者大会!(附参会提醒和名单) 开源框架Ember.js迎来1.7.0和1.8 Beta 1更新 《近匠》RealSense:几行代码,为游戏添增实感交互 MDCC游戏应用征集关键词:中小团队,3D,转型,IP 共话HealthKit:能否颠覆医疗保健生态系统? 关于火车查询 CTreeCtrl 的同一item项被多次点击时,会出发什么消息?你知道吗? WINCE的市场 控件ID有何用? 初学XML,请问ASP传回的中文字怎么是乱码? 请问圆锥体侧面积计算公式是什么?快阿,正在考试!!!!!!!!!!!!!! (♂逍遙剑♂) 过来聊聊!进来! 怎样用文件的形式对数据库进行备份? 能在标题栏添加控件吗?谁能告诉我? 谁知道在Activex控件中事件执行顺序的问题 3山好可怜,被女人抓住了把柄,知道了粗细长短,哎。。。 想在odbc里用程序的方法建立驱动,怎么实现? vc编的DLL怎样处理LIB在BCB中可以直接用哦?我用WINAPI那个约定 救命的!!! 深圳的“同志”好多啊!有一个哥们还向我推荐了一个同志网站,可惜我不是同志,如果有同志需要的话,可以去找那些深圳同志接头! 有懂EJB ,weblogic 大连的朋友吗? to fightwolf:give she some color to see see. 装delphi 6之前是不是要装ie5.5? 现在有一个问题:在大数据量传输的情况下,想采用异步传送方式,请问如何实现? 关于比例问题!! 有人说:做程序员很累,但我很快乐?广大程序员朋友们,有谁同意这个说法吗? 那该怎么办? MFC开发的ActiveX怎么都是OCX,可不可以是DLL,如果可以该怎么做。 如何获得当前活动控件的引用? 哪里有获得指定IP地址的机器网卡MAC地址的源程序? 新手上路:请问系统安全的市场前景如何? 'select * from a where b like ''[as]%'''这一句有没有错呢? 哪能找到 VBScript 5.0 的联机文档 为什么第七期的杂志我还没收到啊!!~~,原以为提前先订几期,会早点收到!唉!~~ php打开CSV文件的问题!答来分去! 各位有用过aspchart这个控件的吗?为什么我不能生成图片呢? 我有一个问题大家帮我UP一下 用HTML可以制作留言版吗?有使用mailto的吗? 大哥们,小弟我准备学JAVA了给推荐几本好书吧!小弟不胜感激啊! 因为JAVA,我差点把机子砸了 网络协议相关——向大侠请教 longyear,来一下啊。 我的一个在installshield for vc6.0下制作的安装程序用installshield professional 6.1编译时出错 在运行期间只有这个控键的句柄如何知道它是不是TForm? 如何动态生成组件? CTreeCtrl 的item项已被选中,再次点击怎么触发同样的事件?我明白了,你明白了没有? 为什么有冬瓜、南瓜、西瓜却没北瓜?同样的,为什么有北京、南京、东京却没西京?这个问题困扰了偶好久…… 请问GetPane得到的是什么啊? 号外号外,上海热线的吸铁石电子信箱有60M的空间,是真是假啊,我真怀疑自己看花眼了,哪位帮我确定一下,这1分就请您笑纳了 关于报表的问题--为什么细节带只打印一条记录? 初学者特来请教! 有谁能够告诉我关于RS-232口,RS-485口的有关信息???? 这个VB怎办??? 这个cookie该怎么实现? pe文件原理 请问这条SQL语句where有错? 英语翻译panel公司的中文是什么`? $1500元等于多少人民币? 力矩单位的换算大家好,请问1N.m等于多少N.mm?如果方便,麻烦请写一下换算过程. 英语翻译 1500毫升=()立方分米填的是分数。 30 ft lbs 等于多少 psi? rear mount on vessel console panel 怎么翻译? 1500毫升=(?)升=(?)立方米 LBS和PSI 有区别吗在美标中的压力:3000LBS,是不是和3000PSI相同的. 我国汉字的"六书”是指什么 1500-2000毫升相当几杯的水啊? 扭力转换:5IN.LBS等于多少kgf.cm 汉字的构造有六书?有哪六书 重量和牛顿是怎样换算的要具体的换算公式啊 国外的扭力in-lbs换算成中国的标准n-m怎么换算,还有kgf-cm,8 IN.LBS是多少Kg啊, 汉字六书指的是什么 牛顿和千克能换算吗?怎么换算呢? 125PSI等于多少KG?100LBS等于多少kg?请解释一下psi和LBS是指什么单位? 汉字有六书之说 指的 lb换算成牛顿还是千克阿? 一个水池的水深度为2米,池底有一个面积为10平方厘米的孔,用塞子塞住,塞子所受水的压强为多少 汉字构造有六书之说,是指哪六书? 牛顿和千克的换算关于减速机选型,一般要计算扭矩,N*m,其中的“N”指的是牛顿力,或者说是千克力吧,现在问题是,有些地方说1Kg=1N(1米力矩上1牛可以拉动1Kg物体),有些地方说1Kg=9.8牛(自由 浮力甲是一个空水池,底部的排水口已用塞子塞住,放水至虚线处甲是一个空水池,底部的排水口已用塞子塞住,放水至虚线处,(1)现将一质量为60g,体积为750ml的空心密闭瓶放入水中,试计算该瓶 根据词语的不同意思写句子尖锐 (1)物体有锋芒,容易刺破其他物体的:---------------------------------------------------------------------------------------------------(2)(言论、斗争等)激烈------------------ 急公斤与牛顿换算问题0.05--0.6KG剩以平方厘米等于多少N剩以平方米? 一个水池的深度为2米,池底有一个面积为10平方厘米的孔,用塞子塞住,塞子所受睡的压强大小为多少帕塞子所受水的压力大小为多少牛 根据句子的意思写词语.1:觉得意外或惊喜.2:冬季最寒冷的时期.3:能适应各种环境 在任何环境中都能满足. 牛顿和重量之间是怎么换算的?1牛=?KG. 体积80立方厘米的物体,有36立方厘米露出水面,问物块所受浮力为多少?物块密度为多少?(g=10N/Kg) 根据词语的 不同意思写句子生气:生命力,活力: 公斤和牛顿换算关系 物体的体积1*10^-4m^3,浸没在某种未知液体时浮力是1.5N,求该物体密度(g取10N/kg) 根据词语的意思写句子 公斤和牛顿如何换算 kg与g的换算 根据下面句子的意思写词语.1.称心如意,感到非常满意的样子.2.争的向前,生怕落后.3.形容极度惊慌,行动失常的样子. 英磅/英寸怎么转换成牛顿/MM 比方说:25.5LB/IN转化成N/MM怎么转换 怎么将flv格式转换为3Q 《产品质量法》和国家标准《预包装食品标签通则》(GB7718)规定的食品标签必须标注的内容是什么? 牛顿怎样转换为吨 一千克等于几升? 规定国家标准格式的国标是哪个?国标号多少封皮丢了 想自己做一个也就是说国家标准的标准是什么? 液压扭矩扳手上显示单位是压力怎么转换力矩在使用液压扭矩扳手紧M30(10.9级)螺栓时,压力表上显示到350bar,能转换到力矩吗?有多大?M30(10.9级)预紧力极限值是多少?与压力表显示数值关系吗 一吨等于多少千克?一吨等于多少公斤? 在括号里填写与前面汉字意思相同的字组词.怨() ()冷 包() 愧() 阻() 枯() 寻() ()啸 胡萝卜素用英语怎么说 压力值怎么换算成力矩值液压力矩扳手上面的读数 (PIS mpa) 怎么换算成力矩值(N.m) 根据汉语意思填写英语不要在晚上和朋友到处闲逛.Don`t______ ________with your friends at night. 我想请问下,GB2760-2011中,固体饮料类的食品添加剂没有β胡萝卜素,但是在其他的食品中属于食品添加剂, 力矩3530N.m 怎么转换成 液压泵的压力MPa扭紧螺栓的时候是用个液压扳手,用力矩扳手,是3530N.m 现在要换算成压力,因为我用的是液压扳手,要看压力的,怎么换算,或者缺什么条件不能换 练好汉字的书写具体有何意义? 请问GB2760?请问GB2760中的甘油和苯甲酸钠的化学名称是什么,它们的规定用量是多少,标准是什么? 1N等于多少g 英语翻译要比较舒服的翻译,什么面板a,版面a,图层a,读着很不顺 1500克等于多少两? 1N/25cm等于多少g/25mm还有,请问1N/25mm等于多少g/25mm? use bracket $1500等于多少人民币 螺栓预紧力矩为17T*M,其中的T*M如何换算成国际单位制!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn