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

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得到了所有文件,这是因为如果文件被
其它正在处理的应用程序删除或占用,该调用会失败。
特点
撤消更改
添加/删除或替换不同序列中的字符串
改变预览
单词的大小写控制
删除现有的数字序列
有序规则为基础的处理
编号前缀/后缀和格式选项

 

 

TIOBE 2013年11月编程语言排行榜:C#、Transact-SQL及VB.NET厚积薄发 透过KitKat,Android或与ChromeOS融合? 利用Spring Data Neo4j搭建推荐系统 七丽借百度SiteApp移动化 分发及变现能力获大幅提升 Go语言4岁了 生日快乐 谷歌发布Web延迟基准测试工具 专访JS-Git创始人Tim Caswell:让Git运行于任一平台 一段代码引发的思考 2013年美国开发者薪资调查报告 MDCC之移动娱乐游戏峰会:金玩奖揭晓最火游戏 算法为王:且看Mac Mini如何超越1636节点的Hadoop 鲍尔默成大善人?微软正式废除员工排名评审制度 工信部软件司副司长陈英为MDCC 2013大会致开场辞 全民移动•重塑世界 2013移动开发者大会盛大开幕 泯灭Web App可用性的七个开发错误 保益互动创始人曹军:听到的世界更精彩,盲人应用背后的故事 Gumi公司CEO国光宏尚: 大公开!日本手游市场攻克方法! Great Hill Partners高管Chuck Goldman &amp;amp; 南京创毅CEO William Wei:超越黑莓——下一代企业移动 高通业务拓展副总裁沈劲:智能手机2.0——以体验为中心 百度副总裁李明远:百度轻应用——长尾APP的最佳选择 中国工程院院士李德毅:大数据时代的认知计算 创新工场联合创始人汪华:2013年中国移动互联网进入深入区 百度副总裁李明远:解答关于百度轻应用的八大疑问 谷歌推出PNaCl,帮助开发者在任何硬件和网站上运行代码 阿里云:双十一350亿交易额的幕后英雄 索尼移动智能设备全球技术总监Goran Andersson:索尼移动可穿戴设备解决方案 腾讯社交网络事业部副总裁陈磊:腾讯移动开发者服务体系 基调网络副总裁陈靖华:全面掌握移动应用性能 蓝港在线创始人王峰:手游新时代下的机会与挑战! Couchbase CEO Bob Wiederhold:数据库云端同步,移动应用开发的未来 三星电子大中华区副总裁黄伽卫:构建移动互联生态,解读内容服务新方向 关于Win32下的字符串操作 菜鸟提问,估计大家都会,指点一下 为什么我用ie的时候,新打开一个页面,他的还原形式的大小总是最小化的? var oXL = new ActiveXObject("Excel.Application")这句话有什么问题? 高分求算法 如何根据IP来得的到对方的操作系统类型 怎么这么老套,大家想想办法啊! 我要学DirectX了,请大家帮忙找一些这方面的资料。 关于出错信息的问题,多谢指教! Csdn,为什么你现在不忙了! asp.net的优点到底在哪里 大家能否推荐几本无线应用方面的书(如:短信编程、WAP编程), 谢了! 最基本问题 哪位写过控制摄像头的例子, 如何使用XP的远程桌面管理?远程控制. float 5.29 显示出来会是什么? 要不要学c++ 不能保存文件了,怎么回事? CString的一个问 在vs,net中创建用户控件和组件有什么区别? Lotus Notes and Domino与LOTUS 1-2-3有什么差别? 问路 JBuilder中类找不到 Montaque,看到后请进,问题有点菜,但希望你尽快回答! 大家帮帮我啊谢谢 private的意义是什么呢? 这是怎么回事啊,经常遇到的问题 请问windows编程和windows网络编程哪种编译器最好 新手提问--初装redhat7.2问题多多 请问如何在iis中提供证书认证?急! ASP.NET能不能用记事本写?! ??如何获得在DataGrid控件中选中一条纪录的消息?? 在win2000上调试好的程序,为什么到了xp的iis下面关于access数据库写入的页就打不开了? 不通过键盘,不通过初始化,不用SetWindowText(),如何向一个编辑控制加字符串 maya里的动画如何渲染? 数据库中的超键是什么意思? 组件如何发布? 一个小问题(请斑竹不要删) 菜鸟提问:怎样才能在编程中把一个数据库生成一个HTML文件! long型能转换为int型么? datagrid中RadioButtonList被自动选择问题? c#中如何比较两个string的大小,如"AB">"AA" return * this 问题 急!!,我VC的一个库文件坏了! 现在真是失恋的季节,各位帮帮我,我是否该该怎么办? 在线等待WIN98操作系统下载的网址 关于模板特殊化的一些问题 三个小问题 那儿有GUN c++ 下载? 关于拨号的问题 学习VB.NET的方向在哪里 如果……如果……如果……造句,初中水平的 也字几笔画 知道与懂的详细区别? 初中水平的造句英语帮用英语各造3个句子too much too much much too 拥抱为题目的600字作文 狡猾什么意思啊 初中水平的英语造句!翻译下列词并造句1 ...the same as ...2 ...make ...do ...3 ...to take ...(period of time)4 ...to help do ...5 ...to help with ... 张老师把20000元钱存入银行,存期3年,年利率是5.00%.到期时有多少利息? thank you for doing怎么造句能给我造2句吗在加上中文 (假如)是月明风清的夜晚,人们的眼再尖利些,(就)可以看见有一只小船从苇塘里撑出来,在淀里,【像一片苇叶】,奔着东南去了.用假如.就.,还要比喻. 都字有几笔画 竹子,每攀登一步,都作一次小结;————竹子,每攀登一步,都作一次小结;浪花,每奔腾一次,都换一个舞姿———— 这个汉字对应的英文很少见,这句话英语怎么说? 口,字共有几笔画? 含有夸张的成语要整洁!要很多!不要意思! 生物里“对照实验” 用英语怎么说如题.(我只要名词词组即可) 英语好的!thank you for doing sth 与 to do sth 认知和认识是不是同一概念,两者有区别吗? 一篇英语作文(6句话就ok!是要有具体路线的!比如说什麽go along 之类的东西!从 学 校 回 家 的 路 线 thank you for 唐山大地震观后感500 小作文一篇,5,6句话,翻译成英文,My hobby 摆渡自己的话题作问怎么写 唐山大地震观后感600到700字. 你有多少个球用英语怎么说 找一篇电影《唐山大地震》的观后感.(急!)要作文形式的 600字以上 唐山大地震 观后感 I didn't see you last night.-- Oh.We ___ my uncle's home after supperA dropped by B showed up C hung out D gave in 关于唐山大地震电影的观后感要450到500字, 唐山大地震的观后感要300字的, 用境界造句请用这个词造句,要20个字以上,优美一点, 唐山大地震电影观后感最好是成人化的,急求!500字以上. 观后感 唐山大地震 问个很哲学的辩论题为什么有人劝导年轻人要有志向有理想而有些人又有劝导人要淡薄明志,莫为浮云遮望眼? 一道初中的解不等式 这个不等式怎么解的啊 求详细过程 像……一般,像……一般,像……一般的排比句 有的像有的像有的像造句 高水平 解一道初中不等式x平方加3x减4小于等于0 急, 像?像?的排比句 生活中有必要哲学辩论 ?两个都是哲学家,他们辩论,很正常.但是一个学哲学的,对他的孩子辩论老半天,对他妈,对朋友,有必要吗?毕竟别人不懂,也觉得没必要,我朋友他总是一个劲地说老半天的, 解一个初中不等式2-3x的绝对值小于或等于2.我有思路,(打字困难,多多包涵,希望大家看得懂,^^) 像什么的排比句 请推荐一本哲学方面的书····辩论的 thank you for doing something 造句 世界人均智商是多少? 最近家里老是爬蛇啊.而且都是小蛇 爬了大概有4 5 条小蛇了 到底是怎么回事啊 那些蛇能不能打啊真的很吓人啊 辩论赛哲学无大用应该怎么讲 描写竹子的诗句要有诗意 哪位知道蛇吃什么东西?家里喂养的小蛇.老鼠、麻雀、青蛙、昆虫我都没地方给它找去啊,我是说在家里有什么是它可以吃的? 哲学吧辩论大赛谁报名? 描写老师的排比句 要高中水平的,富有诗意的,急用, 有哪些球?要写英文哦 张老师有10000元存银行2年,有2种方法:一存2年,年利率2.97%;一种是先存一年,年利率2.25%,到期再把本金税后利息合在一起再存一年.哪种方法利息多?税后利息合在一起再存一年.哪种方法利息多? “懂得”和“懂的”的区别 现实生活与梦想中的生活有什么区别? 张老师把1万元存入银行,存期三年,年利率3.24 %.到期时,张老师共取回本金和锐后利息多少元? 包含和真包含有什么不同含义 求教懂 认知和认识有什么区别? 以(让路)为题目的作文600字. 有人跟我讲他懂什么什么和我知道他讲的不对但不讲出来有什么区别么?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘