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

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

 

 

SQLite操作,还是raw方法更简洁高效 Android开发基础YesNo对话框构造代码 Android代码性能优化技巧 Android开发注意点 Part One onSaveInstanceState和onRestoreInstanceState的用处 Android基础概念Context的作用 在Android的Notification中显示进度条 Android跨进程数据通讯-剪切板Clipboard ConditionVariable Android线程同步 Android软件开发方向指导 ArrayList LinkedList Set HashMap介绍 PermissionInfo Android权限枚举方法 Android上HTTP协议通讯状态获取 Android开发需要自己完善的类库总结 Android的ListView控件滚动时背景问题 GestureDetector手势识别类 - 进阶篇 MenuInflater Android菜单从xml创建方法 EditText输入提示你知道吗? Android布局Java代码构造法 Android全屏设置代码 测试Android软件性能主要方法 自定义Android标题栏TitleBar布局 获取Android屏幕方向及键盘状态 Android平台XML解析库功能不完整 GestureDetector手势识别类 - 入门篇 不会Java或C,Android123告诉你还有选择 Splash Screen开场屏在Android中的实现 Android游戏开发性能改进要点 Android的Activity你知多少呢? JSONObject在Android上的应用 Android高性能文件类MemoryFile freedorm格式数据窗口打印问题,字太长如何自动换行, 一个头痛问题。 做过政府审计软件的请帮帮忙,怎么从十来套不同表结构的数据库导数据到一个固定表结构的数据库呢? 如何让菜单可用或不可用?急啊~~ Lotus中的js问题 哪有Oracle中文最新版下载呀, 请问各地delphi认证培训的费用是多少? re:下雨了 怎么样加提示框 借一个问题!XP里面网卡怎么工作不正常 请问有什么办法破VBA的密码 CEdit 背景色的问题 100 分 请问vb中浏览器控件是在哪个文件中,另外我想在vb程序中加入介绍性网页,应该怎么办! 了解jpeg的请进 高分急求数据库解决方案! 请问vb中浏览器控件是在哪个文件中,另外我想在vb程序中加入介绍性网页,应该怎么办! 存储类 在MainFrame里怎么得到一个指向MyDoc类的指针? 上海的弟兄前来领分!!!! 能ping通代理服务器,但不能上网(ftp等都不能用)。有那些原因! 谁有api做的串口通讯例子 很简单的Temporary used 问题,就是搞不清,请哪位详细点拨一下,铭谢 DataGrid中使用HyerLinkColumn,请怎样动态传递多个参数或改变DataNavigateUrlFormatString的值(在线等待答复) 在winsock1.1下怎样监听网络事件。(请给个API 的 sample ) 高分急求数据库解决方案! 高分求助软件稳定性问题! 高分请教exej4的问题!~ 我的代码可以被编译吗? 十万火急(在线等)关于发邮件问题!多谢了(最后50分了) 感谢各位的鼎力支持!!! 急:如何让sqlload使用命令行方式,把数据库中的指定几个表导出?(在线) 单元全局变量与工程全局变量有什么区别 问一个关于JSP和XML结合的问题. 请问怎样用ASP连接Mysql数据库,急! 有没有j2ee的qq群??? win2k里的smtp服务器,怎么是需要身份验证的? 怎样让智能ABC记住输入的词组呢? 你在delphi中,用到了多少面向对象的知识? Dragover事件什么情况下触发 北京还是深圳 如何实现两个类互相访问--急! <Code Complete>怎么翻译好呢? 急!!!!!在dcom中向数据源添加数据报错,为什么? 有哪些方法可以在ASP.NET设计文件.aspx(html格式WEB)与脚本文件.aspx.cs(.aspx.vb)中传递数,或者说传递变量的值!!! 我用CDONTS.NewMail发邮件,怎么判断邮件发送成功或者是不成功呢? asp.net的客户端键盘的事件处理的有关问题? 请问怎么在程序里随机产生CLSID代码?$$$$$$$$$$$$$$$$ 急! 如何定义一个全局的类的实例,请高手指招? 到底怎么创建桌面快捷方式? 给点参考吧! ADO连接带密码的数据库时出现的错误!!! 地球生存的多少年谢谢了,大神帮忙啊 发表权的名词解释 环境条件下降会使变温动物产生氧化反应和磷酸化反应解偶这生理反应,在这种条件下下面那一结构改变其功能?A.核内膜B.线粒体内膜C.线粒体外模D,透明质E.过氧化氢酶体 我们生活在地球的表面还是里面? 抵消权的名词解释是什么? 我个人觉的地球生物可能就是外星人!第一批出发的生物是高度发达和文明的,他们带走了自己的高度发达的技术,所以会留下那些人我们现在无法解释的金字塔之类的东西!也留下除他们之外的 地球生存了多少年?000 OUI OUI怎么样 "很多"的近义词是什么如题.近意词越多越好. 揶揄的汉语拼音是什么啊 COMME des garcons中文怎么发音? 以下关于马克思主义的说法,正确的是( )以下关于马克思主义的说法,正确的是( )A、马克思主义是为无产阶级和整个人类争取自身解放和美好幸福未来的科学理论.B、马克思主义既包括马克 中兴 OLT c300 发光功率? 举例英,法,美三国资产阶级革命的领导人及革命中颁布的重要文件 下列关于马克思主义的传播 说法错误的是B 遭遇一些资产阶级知识分子的抵制C 马克思主义在中国的传播范围有限答案选C WHY? 谁了解comme des garcons 这个牌子?如题~请达人介绍下此品牌,去香港买是否便宜? 反渗透直饮水机是什么样子的机子啊? 下列关于马克思主义的说法错误的是A.马克思主义即马克思恩格斯创立的基本理论、基本观点和学说的体系B.从它的创造者、继承者的认识成果讲,马克思主义是马克思创立的,而由其后各个时 comme des garcons 这个牌子怎么读?好像是法文,还有marc jacbos这个品牌~ 奇函数y=f(x)的图像在x=0处有定义,则f(0)=0 olt是什么 哪种天气细菌不容易繁殖 处于分裂状态的细胞染色体有哪些变化? They are students ( )an international school.括号里填介词 净水机处理过的污水能够饮用吗?有些好奇 分裂期时细胞内的染色体如何改变具体到染色质如何形成染色体 does he like p.e.yes it's his___ ____ 地球为什麽是圆的 细胞分裂时,染色体的变化最明显,染色体先()再分裂 求法文歌 Parce Que C'etait Ecrit Comme Ca(仿佛注定)的下载.最后是国内的,国外的网站打不开. 为什麽地球是圆的? 《山居夏日》高骈(唐) La vie comme ca ne me fait pas plaisir!这是法语,诚心请教知道者,叩谢. 为什麽地球是个圆的 高骈号什么 贻羞之子什么意思? 月亮是地球的什麽? 改错:1、We have a little time.We are late for school.2、how are your borther?3Are you good to kids 《弟子规》中,身有伤 贻亲忧 德有伤 贻亲羞.中的“ 贻” 第一财经的头脑风暴,为什么换主持人了?袁岳不是北京人么? 若f(x)是奇函数,f(x)在x=0处有定义,则f(0)=? 谁知道《得有伤》《贻亲羞》是什么意思? 简述什么是头脑风暴,头脑风暴如何训练?我从《教育心里学》这本书中看到的,但他没有对这一词做任何解释,请您帮助我好吗? 怎样写山水田园诗?是怎样写,不是写出来 马克思主义中国化的基本规律 有所为,有人说该词语除了正确的意思之外还有一种容易让人误解的意思,在下不知道是什么. 典型山水田园诗有哪些 民法典在法学上的名词解释 We are_____international school for children of 5-12.(a) 高骈是什么朝代的诗人?骈怎么念? 名词解释;巴伐利亚马克希米里安民法典 ‘有所为,有所不为. 保留意见审计报告. Comme c'est amusant 地球还要生存多久?拜托各位大神 急求报告名词解释 湖北的邮政编码的每个数字代表着什么含义 在资源被过度消耗的情况下,地球上的城市生存的方向有哪些? 年度审计报告 四一二事变后国民党在南京成立国民政府实行什么专政? 也门一男子烧死15岁女儿 只因其与未美一公司将开发氦气球太空游 游客可观美观测到迄今最古老星系 距地球131澳琴师自称造出完美小提琴 可与世界名德防长批评美国监控传闻 称欧美关系将泰国一巴士坠山沟致21死 司机驾驶俄公交炸弹袭击或引发连环恐袭 索契冬挪威销毁叙化武受美国热捧 坦言国内压也门一男子烧死15岁女儿 只因其与未日本6名女性涉嫌在网络上上传猥亵视频澳洲一名男子涉嫌逼迫未婚妻致其死亡接美观测到迄今最古老星系 距地球131德防长批评美国监控传闻 称欧美关系将媒体评美国6岁儿童说“杀光中国人”:美国14岁少年被控刺死女教师 据称性澳琴师自称造出完美小提琴 可与世界名澳七旬男子苦等救护车未果 在家中不治调查指许多澳洲学生吃“聪明药”提高成柬埔寨反对党举行街头示威 抗议选举成日本一公司推出价值66万纯金奥特曼美国职棒大赛 球员为赢对手纷纷留长胡重读甲午之二十一·东亚文明核心的转型草根导演致力藏区“影像”30年受风雪极端天气影响新疆多趟旅客列车晚广西女子跳河失踪 警察群众向路过船只无锡17条路段开启严管模式 车辆违停日美启动“山樱”指挥所演习 约650中国继续向马尔代夫紧急援助65吨饮用数千只大天鹅飞抵荣成越冬 天鹅雪中舞江东门纪念馆获赠四川抗战老兵手印等珍上海海关向博物馆移交1600余件走私时局所迫,法俄严冬“抱团取暖”贺晓明:袁雅逊是党的小红军、共和国的时局所迫,法俄严冬“抱团取暖”佯装乘客实为窃贼 一男子公交车行窃被从断层到复兴 华文教育贵在坚守保定今冬明春投资6亿多元推进农田水利乌鲁木齐暴恐案被判死刑绍兴看守所迁新址 600余名在押人员河北制定管理办法 抑制新闻敲诈和假新河北制定管理办法 抑制新闻敲诈和假新也门首都发生爆炸袭击 针对反对派组织
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘