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

C#实现文件批量改名工具

HTML文档下载 WORD文档下载 PDF文档下载
我经常需要修改一大批文件的文件名,需要一个一个手工命名非常累,因此我写了这个批量改名程序,本文介绍一下这个程序的实现方法。

 

作者:Steppenwolfe

 

下载源代码

 

我经常需要修改一大批文件的文件名,需要一个一个手工命名非常累,因此我写了这个批量改名程序,情况从此改变。

这个程序的接口是简单灵活的,如果你想使用正则表达式处理,提供LINQ支持,自定义查询等功能,就自个去实现吧,

如今它已经够用了!

 

 

代码实现片段

 

将文件扩展名放入combobox中

 

private Array EnumKeys(RegistryKey root, string subkey){    RegistryKey key = root.OpenSubKey(subkey);    string[] keys = key.GetSubKeyNames();    key.Close();    return keys;}private Array EnumValues(RegistryKey root, string subkey){    RegistryKey key = root.OpenSubKey(subkey);    string[] values = key.GetValueNames();    key.Close();    return values;}private ArrayList GetFileTypes(){    // get supported media types, missing from hkcr    // Applications\wmplayer.exe\SupportedTypes    Array media = EnumValues(Registry.ClassesRoot, MEDIATYPES);    Array list = EnumKeys(Registry.ClassesRoot, "");    ArrayList res = new ArrayList();    foreach (string s in media)    {        if (s.StartsWith("."))        {            res.Add(s);        }    }    foreach (string s in list)    {        if (s.StartsWith("."))        {            if (!res.Contains(s))            {                res.Add(s);            }        }    }    return res;}

下面是如何进行文件名收集,不需递归调用

 

private ArrayList GetFiles(string dir){    ArrayList list = new ArrayList();    string pattern = "*" + cbFileType.Text;    SearchOption option = chkSubfolder.Checked ? 	SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;    if (Directory.Exists(dir))    {        if (chkSubfolder.Checked)        {            list = GetFiles(dir, pattern);        }        else        {            try            {                string[] files = Directory.GetFiles		(dir, pattern, SearchOption.TopDirectoryOnly);                foreach (string s in files)                {                    list.Add(s);                }            }            catch { }        }    }    return list;}private ArrayList GetFiles(string root, string pattern){    Stack<string> dirs = new Stack<string>(20);    ArrayList list = new ArrayList();    string[] subDirs = new string[0];    string[] files = null;    dirs.Push(root);    while (dirs.Count > 0)    {        string currentDir = dirs.Pop();        try        {            subDirs = Directory.GetDirectories(currentDir);        }        catch (UnauthorizedAccessException e) { continue; }        catch (DirectoryNotFoundException e) { continue; }        catch { }        try        {            files = Directory.GetFiles(currentDir, pattern);        }        catch (UnauthorizedAccessException e) { continue; }        catch (DirectoryNotFoundException e) { continue; }        catch { }        foreach (string file in files)        {            list.Add(file);        }        foreach (string str in subDirs)        {            dirs.Push(str);        }    }    return list;}
你可能会疑惑,为什么我不用Directory.GetFiles得到了所有文件,这是因为如果文件被
其它正在处理的应用程序删除或占用,该调用会失败。
特点
撤消更改
添加/删除或替换不同序列中的字符串
改变预览
单词的大小写控制
删除现有的数字序列
有序规则为基础的处理
编号前缀/后缀和格式选项

 

 

专访前IE浏览器内核研发工程师,带你深入了解IE10 Windows 8市场接纳速度慢于Windows 7 别只看下载量!“用户留存率”才是关键! 预计2020年出现百亿亿次级超级计算机 Google数据中心PUE的秘密 一个传奇:有个人不断赢得世界算法冠军 音乐能力开放平台合作探索之旅 社交网络海外营销技巧及工具实战 大数据谬误 —— 为什么我们需要收集更多的数据 传苹果地图负责人Rich Williamson遭解雇? 一个月:Windows 8授权许可已破四千万 里程碑:iPhone与Android企业用户市场首次超过黑莓 VMware最快下周宣布分拆Cloud Foundry 国际原子能机构服务器遭窃 百多位专家信息泄密 用户可通过Google Drive直接向Gmail添加高达10GB的文件 韩寒携个人App进军移动互联网 亮相应用汇独家发布会 摆脱谷歌 亚马逊向开发者正式发布地图API 为什么应该用模块取代C/C++中的头文件? Mozilla布道师:HTML5在移动端没有未来? 那些年,历史上留下浓重一笔的黑客们 林敏博士:透过设计看三星手机帝国崛起 OpenFeint血泪史:我们是如何被苹果逼死的 或免费升级:微软2013年推Windows Blue系统 取经:《捕鱼达人2》每月捞金160万美元的秘密 AWS推数据仓库服务Redshift 价格仅是Teradata IBM Oracle的十分之一 美国开展数据中心整合计划 简化政府IT运营 阿里巴巴数据交换平台——集大成于一身 [体验]Windows 8 Metro/Modern Style IE 10 Growth Hacker正席卷全球,你了解它吗? Splashtop发布Ubuntu Linux版本Streamer 性能超过VNC 10倍 Windows 8引领智能操作 人机交互进入触控时代 我想买书 pb7.0哪里可以下载? AUTOCAD图形打印驱动程序设计 贺猪猪成星,散分给水友,天下皆欢颜!!! WinRAR的压缩密码怎么取消啊?快,快,急需!!! 没有权限打开names.nsf的问题? 复选框的问题,在线等待!!! 没有权限打开names.nsf的问题? IE浏览器显示的字体不是默认的,变成了空心字体。如何改成系统默认的字体?(win98+IE5.0) 寻找高手 关于协议的问题 求助!能把一个字段内容分解的函数? Servlet问题?(急等,立结) oleconnection 支不支持sybase的连接,不通过odbc如何连接Sybase高手请进!急啊!!! 关于return的问题 为何内存消耗在不断增长? 浏览器类型 求文件长度? 用DELPHI 开发过ORACLE数据库的高手帮忙,我现在遇到个问题, BCB消息机制问题, 关于MFC 请教:jar问题 零为什么不能做为除数。 菜单资源ID得问题 请问高手,实验室局域网内部下载速度很慢,会是什么原因造成的? 如何利用Datareport做出好看一点的报表? Grid的列怎么来调整? GDI+类使用new操作符问题 有人在吗? 请看看这一样个SQL语句 页面上有两个相连的表格时,中间的边框变得很粗,能否做到和一个表格的效果? 帮我写一个简单的和SERVER2000查询的例子50分相送!! 怎样将别人给我的数据库文件导到本地? 近日较忙,散分200 请问将脚本写在页面和写在J文件里有什么不同?我写在页面上一切正常,可是把脚本防在一个JS文件就报错 ===好几天,ADO 连接oracle数据库的问题.还搞定。大伙给看看 DBLookupComboBox的疑问 我是福建省福州的.程序员在哪儿报名呀?? 如何让录入页面的信息能自动保存~! 编写函数 有谁知道华工的计算机应用的复试考那几门?另外请问关于其他不公布复试科目的学校可以通过电话询问复试科目吗? 想不通,请教?(802.1x) 一个有关浏览器的问题,高手必进! 那位兄弟推荐一款文件夹加密的软件! 发布一套完整的网站系统,up就给分 怎么样能够把文件上传到服务器的任意目录下?? java同mysql连接不上: Server configuration denies access to data source 大家是如何看别人的源程序的呀~介绍一下自己的经验嘛~ 字符串A与B,找出A,B的最大公共子串? 我从TPanel继承一个控件,此控件能有OnMouseWheel事件吗?如果有,如何写? 新手的不解 谁能给个 ado 访问 mssql 最简单的代码例子? 提供毒品原材料 是什么归责原则 麦克斯韦的电磁理论,不是说非均匀变化的电场产生变化的磁场,为什么...麦克斯韦的电磁理论,不是说非均匀变化的电场产生变化的磁场,为什么一直导线通以直流也会产生磁场呢?不是变化的 深海鱼油到底怎么样,我用深海鱼油药丸中的看似水的东西放在塑料泡沫板上10小时后泡沫板被腐蚀了 过氧化钠与溴离子,碘离子,亚铁离子,亚硫酸根可会发生氧化还原反应?过氧化氢呢? 当年……,如今…… 怎么造句 什么昆虫.有三角龙一般的头部,求名字(图中有点发霉)放在泡沫板做标本后不久泡沫板会被腐蚀 溴单质能氧化过氧化钠吗?最好能提供一下常见氧化剂的氧化性顺序 用三个有时造句, 急求一段话的英语翻译!不要用任何翻译器翻!谢谢!文化差异及其产生的原因 文化差异广泛地说,是指世界上不同地区的文化差别,即指人们在不同的环境下形成的语言、知识、人生观、价 硝酸是否可以氧化溴离子 当年……如今……造句 在这英雄的土地上,我要怎么样地高声歌唱!扩写句子 请问有没有回收不锈钢酸洗后的淤泥不锈钢酸洗后有大量的淤泥,里面含有镍、铬、铁等金属离子. 硝酸能不能将溴离子氧化?如题 原线圈输入正弦型交流电压 经过理想变压器变压后得到的电压是正弦型还是余弦型? 我们每月有几百吨不锈钢酸洗后的酸泥,有没有技术可以转化利用.寻求共同合作!急寻酸泥回收利用技术 本草纲目共多少卷…?多少药材?公认的毒药多少种 方向如图所示的匀强电场(场强为E)和匀强磁场(磁感应强度为B)共存的场区······方向如图所示的匀强电场(场强为E)和匀强磁场(磁感应强度为B)共存的场区,一电子沿垂直电场线 癌症用英语怎么说?急…… 氧化那次如何转化为过氧化钠,方程式是什么? 英国物理学家、数学家麦克斯韦的智商是多少? 那个人死于癌症. HCLO强氧化性反应方程式为什么它自身分解就可以体现出强氧化性? 什么时候弹簧的弹性势能最大? "医生告诉他,他得了癌症" 用英语怎么说 用…………时,它会…………造句 用…………时,它会…………造句 记住是这个它 “当我.的时候,当我.的时候,或者当我.的时候,我想起.”造句 患癌症 用英语怎么说主要是“患”, 用“之所以.不仅仅.而且”造句《求速度》 许多人死于战争用英语怎么说 在宇宙空间站内,宇航员能否将水吸到口中在空间站中宇航员能不能将水通过吸管吸到口中,或存不存在吸到口中的可能性.希望有这方面知识的朋友能给予帮助!我同学说太空中没有大气压吸不 这个电脑电源功率是多少? 高锰酸钾加医用酒精会不会爆炸? 如果宇航员在天空里倒水 那么水会流向哪里?如果宇航员不小心掉入太空里会怎么样 在相同条件下氧气的溶解度大于氢气的溶解度,实验中测得比值会比理论值偏___理由: 溶酶体与衰老细胞器融合体现生物膜结构特性为什么啊 修正液(涂改液)接近了火会怎样?修正液(涂改液)接近了火会怎样?反正我知道涂改液不能接近火 甲管与乙管中产生的气体体积比约为2:1.由于在相同条件下氧气在水中的溶解性要大于氢气,实验中测得的结果 溶酶体是细胞器吗 涂改液是否有毒谢谢了,大神帮忙啊 在相同条件下氧气的溶解度大于氢气的溶解度,实验中测得比值会比理论值偏大吗是大还是小? 将适量CO2通入0.8gNA0H碱溶液将产物在减压低温下蒸干后得1.37克固体 所得固体成分是什么?质量分别是多少 一质量为M的玩具坦克放于粗糙水平地面上,内部有一质量为m的炮弹,通过燃烧炮筒内少...一质量为M的玩具坦克放于粗糙水平地面上,内部有一质量为m的炮弹,通过燃烧炮筒内少量火药将炮弹在 优美凄凉的句子 将适量的co2通入含0.8克naoh的碱性溶液中,将产物蒸干得到1.37克固体物质问co2的质量?2naoh---na2co3 0.02---0.01 naoh---nahco3 0.02---0.02 na2co3和nahco3的质量比为 0.01*106比0.02*84 通过十字交叉法{1.37-1.06}比{1. " 车用空气净化器对于车内空气改善效果好还是多开窗就可以了?求告知~" 氧化钙与二氧化碳反应生成碳酸钙要打沉淀符号吗 算并联电路中的总电流.不能用总电压除以总电阻吗?5欧和10欧并俩.总电压为2.5.为什么算个支路相加和直接算总的答案不一样? 怎样使车内的空气达到改善,车载净化器是否有用? 应用麦克斯韦的电磁理论判断如图所示的表示电场产生磁场(或磁场产生电场)的关系图应用麦克斯韦的电磁理论判断如图所示的表示电场产生磁场(或磁场产生电场)的关系图象中(每个选 并联电路中总电阻能不能用总电压除以总电流? 为什么Mg燃烧有火焰而Fe燃烧是火星 有没有一些凄凉优美的句子 并联电路中为什么有时候用总电压除以总电阻的电流与各支路电流不相等?这时应该怎么办 为什么溶酶体自噬.而不会分解其他细胞器如题,是说细胞器膜里面的水解酶分解膜后为什么不会分解其他细胞器?我是说蝌蚪的尾巴消失后.成熟的水解酶流出后.为什么不会破坏其他的细胞器 应用麦克斯韦的电磁理论判断如图所示的表示电场产生磁场(或磁场产生电场)的关系图象中(每个选项中的上图是表示变化的场,下图是表示变化的场产生的另外的场),正确的是( ). 并联电路中求电流,电压是除以电阻还是除以电阻的倒数 植物细胞有溶酶体吗植物细胞内有溶酶体,因为它和动物细胞一样都是有蛋白质组成的骨架而且其内的生命活动会有许多死亡的细胞器膜等,这些都需要水解酶的分解来完成而水解酶又存在于 麦克斯韦方程中关于变化的电场产生磁场及变化的磁场产生电场是推论出来的么? 酒精+高锰酸钾一定会爆炸么是不是和量的多少有关系 高等植物细胞具有溶酶体吗?RT 《世界新闻报》窃听丑闻开审 “世纪审纽约华裔灭门案震惊社区 凶犯偷渡来美伤医案频发凸显医患冲突 医患之间更加强风暴袭击欧洲多国美窃听惹到愤怒的公牛 1个月监听西班日媒称安倍秀强硬让中日问题难解决 损蒙古总统到参谒朝鲜锦绣山太阳宫日防相称“中国危及和平” 中日关系陷以色列释放的5名巴勒斯坦在押人员抵达中行“高山案”嫌犯曾数次用拉杆箱装满金正恩或“首秀”元首外交叙利亚黑客自称“黑了”奥巴马美致力为盟友关系“疗伤”专家解读:安倍“恼羞成怒”天文学家发现酷似太阳系的行星系澳大利亚政府是否解除对中国企业禁令引以色列热炒国防企业遭中国“网络攻击”超强飓风“吹乱”西北欧各国 已致16普京称苏联共青团不仅是政治还是友谊和联合国证实叙利亚14年来首次出现小儿卜拉希米称叙过渡进程由叙有关各方决定切实增强新形势下高校宣传思想工作的针财经观察:奥巴马未能实现出口5年倍增足协征集女超联赛媒体版权冠名及相关商全明星技巧大赛参赛名单公布:巴特勒P去年中国装备制造业出口2.1万亿 占80后华人成英国管理学最年轻终身讲席发改委:推动铁路核电走出去 开拓重大投篮之星大赛名单公布:库里父子PK浓美华裔家庭喜剧开播后引热议 华人观感上海推出“老味道年货”引抢购潮中国新型农村合作医疗大病保险覆盖212014年中国技术合同成交额8577日本通缩疑虑挥之不去 地产股成“票房广州民政局纪委书记方少平涉严重违纪违新疆维吾尔自治区各级纪委书记4月起专广日集团党委委员林峰、副总经理胡梓实招远杀人案被告人撰写邪教文章近百篇 广东惠州通报惠东小商品批发城大火事故贴牌行车记录仪 低价难“高清”“金婚”们 来植物园过情人节日本通缩疑虑挥之不去 地产股成“票房
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘