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

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

 

 

华为敏捷网络:坚持被集成,引领ICT融合 专访赵桂华:.Net也有春天及高性能网站架构实践 《近匠》Testin:云测试除了APP和真机 还有可穿戴和汽车 应用开发利器FXForms:iOS上实现各种Form View Firefox 30正式版:支持GStreamer 1.0技术、内置全新Gecko 30内核 从阿里、UC联姻 看移动互联网“入口”之争 AppCode发布3.0.1更新,支持Xcode 6和Swift 智能家居持续升温:苹果HomeKit合作伙伴Honeywell发布恒温器 欲与谷歌、亚马逊抗衡,苹果推CloudKit拥抱云服务 针对新一代物联网应用 Atmel推全新32位微控制器 实时计算,流数据处理系统简介与简单分析 Cue:秒杀HealthKit,打造自己的家庭医生 新iPhone要来:4.7就够了么?我们还有更大的 Docker迈入云(DockerHub)+端(Docker引擎)时代 《近匠》壹枱智能钢琴:改造音乐行业的新“玩”家 圣何塞Hadoop Summit 2014看点 唯快不破!90后大学生9天完成近670页的Swift语言文档翻译 一周消息树:Java、.NET、Web技术应用特点 苹果生态格局:软硬件之后,iLifestyle才是王道 小米互娱总经理尚进:独立游戏当为发烧而生 哪些编程语言、框架/平台最受企业青睐? 高德LBS应用大赛:百万大奖、千万基金等你来拿! Gartner:有数据有真相 从浪潮看服务器市场走势 PhoneGap 3.5.0发布,不再支持iOS 5和ARM64 “中美青年创客大赛”之“创客&#183;教育论坛” 以创客教育支持创新人才培养 授之以渔,谷歌发布开源秘密武器Kubernetes 炫耀分数已经out!ShareSDK发布游戏内视频录制SDK Android开发者必知的5个开源库 UCloud完成B轮融资5000万美元 Git远程操作详解 《近匠》iMAG:移动应用快速跨平台开发工具 想做挖雷游戏,给点提示。 高手请进,比智商的 关于交换机!急!急!急! 怎么样,固定一个MDI窗口的大小?使它都能最大化,最不化。 怎样实现这个功能,大家都看看。。。 500 分 我要疯了 (BCB5中ADO连接 Access2000数据库,显示在DBGrid中的数据小数位无法控制) 怎么样将一个窗体加载到一个PICTUREBOX中,也就是说在PICTUREBOX中显示窗体? 鼠标移出事件有没有,是那一个? MFC下怎么建立socket 如何在PICTUREBOX中加入垂直滚动条? 如何设定,以提高masm编译代码的效率 关于使用虚拟主机上的sql server数据库文件. 如何固定一个MDI窗体的大小,使它不能最大化最小化。 application 变量能否写在 javascript 中?如: 控制ScrollBox的滚动条,设定滚动条的位置,滚动条改变但ScrollBox的当前位置没改变? 在VB里面有一个OnMouseOver 事件,Delphi如何实现呢?我看见许多组件都没有这个事件... 好想法! 请问关于热插拔硬件插拔消息在win98和win2000中有什么不同? 请问如何画平滑线 csdn没有高手,我很失望,以后我还是不来这里啦!! 该死的网站! 在那里能下载 fast report 控件,急用! 怪题挑战高手:一个求平形四边形的趣题!有兴趣的请进!:) 一个很菜,但是给分很高的问题(关于0x40等类似问题)!!!紧急求救!!! 一个存储过程的问题 明天去参加MS的VS发布会,不知他的技术介绍会是什么? msflexgrid控件可不可以用ctrl来选择多项?? 一个很菜,但是给分很高的问题(关于0x40等类似问题)!!!紧急求救!!! 如何清楚TImage控件内的图像? 明天去参加MS的VS发布会,不知他的技术讲座会是什么? 哪里有中文的《Inside C#》 在win2000下如何调用拨号网络 拨号拨通了,ping不通是什么回事? 有什么办法可以给 Label 控件加上句柄? *******怎样实现将一幅图像进行局部放大???****** com和dcom在编码实现上的区别是??? 我要做毕业设计,请有经验的高手们进来看看! import com.bitmechanic.sql???? 顺便问一下,西安哪里有好的电脑书卖 快救救我的硬盘吧!各位大虾! manager server出错! ORACLE数据库的表放在哪里?扩展名是什么? 拨号拨通了,ping不通是什么回事? windows 下时钟的那种输入是怎样实现的,进来看看,在线守候,立即加分 sos 十万火急,请大侠指教 转让书刊* 谁能帮帮我的这个问题?对与VECTOR的问题? 有什么好的软件在不格盘的情况下分区 游戏引擎和3d真实感图形渲染器源代码和开发文档出售 急急急!!!:::请问ATX电源没有主板如何启动工作?(现在有个ATX电源,一个光驱,想听听cd ,可不知道如何加电?) 某企业存入银行一笔款项,计划从第五年年末起每年年末从银行提取现金30000元,连续提8年,假设银行存款复利年利率为10%.1、计算该企业现在应存入银行多少钱?2、若该企业从第五年年初起,每 一条小路全场800米,要在路的一旁植树,从头到尾共植树51棵,每两颗树之间相距多少米? 一只电能表上标有“220V 5A”字样,则此电能表最多可接“PZ 220-60”的电灯数是几盏? 某人现在存入银行20000元,利率为3%,今后十年内每年年末可提取现金多少元?求解答过程.谢谢! 在一条长为180米的小路一旁植树,每20米栽一棵.一共需要栽多少棵树?要单位 怎么看房屋图纸设计?怎么画房屋平面图? 让生命充满阳光作文 4、在一条长为180米的小路一旁植树,每20米栽一棵.一共需要栽多少棵树? 1.小军身高135厘米小亮身高x厘米小亮说我比小军矮4厘米 2把m支铅笔平均分给全班30个同学每人分得4枝分完了用方程表示数量关系用方程表示数量关系 一条河平均水深1.3米,6米的小孩在这条河里游泳是否一定没有危险? 电能表的额定电压220V,这样正确吗?还是应该接在220V的电路中使用 小红,小青的平均身高是103厘米,小军的身高是115厘米,三个人的平均身高是多少厘米?带算式单位,一定要全, 怎么写关于桃花作文?而且不少于400字? 鼓字左半边怎么读啊 神的左半边的那个字读什么?礻 我说的是这个字怎么读的! 求中学作文:日子 某家庭电能表上标有“220A 10A(20A)”字样,那么该家庭电路中允许的额定功率可达多少千瓦?短时间内用电功要有过程.谢谢 在房屋平面设计图中,门和窗应该怎样表示? 求高中作文:未来的日子里.快~~~~~~~ 帅字左半边怎么读 一只标有220V5A的电能表 最多能安装220V60W的电灯多少盏? 老师,有你相伴的日子!800字左右 英语翻译 电能表上标有220V 10(20)A字样,最多接220V 40W的电灯多少盏怎么大家有的说110个,有的说55个,它问的是最多,难道不是220V*20A/40W=110个吗,如果说不是,担心烧坏电路,那220V*15A/40W怎么样 在一使用“220V 5A”家用电能表的电路中,最多可装“220V 40W”的电灯几盏要详细过程或作题的原因,好的还可加分我主要是想知道个所以然来,总功率为什么可以除以一个灯的功率,难道每个 风力发电机的内部构造及设计原理 小军身高1米2分米,小力的身高比小军身高的2倍少8分米.求两人的平均身高. 那段( )的日子 初一600字作文 隧道窑的密封有哪几种方式?如何构造? 试比较3的平方55、4的平方44、5的平方33的大小. 《放假的日子》初一的600字作文 要有小标题 使赵州桥得设计和建设符合科学原理,主要体现在那几个方面 √4的平方+3的平方=5 √44的平方+33的平方=55 √444的平方+333的平方=555 以此类推√44··4的平方+33··3的平方=?(我知道是2011个5,但如何表示?)↓ ↓2011个 2011个 那个很严厉的老师、那个戴帽子的女老师 必须翻译成含有定语从句的短语 介绍下音乐盒的原理和构造,并告诉我如何制作(要求能播放多首歌的),别怀疑我的能力...好的再加上100分(本来想悬赏200的.但是我只能选100.郁闷.).反正一共300分送人.(晕倒...不要现成的.) 有爱陪伴我的日子 作文(800字) 老师来分析定语从句,1,This is the village where he was born.2,This is the village which/that/不填 he visited last year.请问第一句话中定语从句的关系代词为什么可以是where?在第二句话中关系代词可以是which/that 道路工程设计图纸中的这两个图像代表什么意思 有··陪伴的日子600字作文事半命题作文,要600字拜托 怎样把英文写得很有感情?大家都知道,把中文文章写得很有感情,需要用写华丽的辞藻,需要用些特殊的写作手法,排比 拟人 什么的.更多时候,有韵律更动情.可是 英文要怎么写才能够一样那么 急.用定语从句解释"教师" 道路工程设计图,出图比例道路设计图(公路和市政道路),的总图、分图分别按什么比例1:1000还是1:500,求相关规范以上为平面图,还有纵断面图的纵向和横向分别用多少的比例 牧字的右半边是个什么字或.跟这个右半边相近的字求大神帮助 某校的教学楼装有"220V 10A"字样的电能表,该电路最多可接"220V 40W"灯泡A.48盏B.55盏C.27盏D.50盏在线等候,最好五分钟内解决!五分钟内解决的加送20-100分!快. 求平面设计图左上角是卫生间.其他随意 最好两室.墙可拆.挂壁电视,洗,冰,都要有 地方放单位cm 1:40q/q//4.5.9.3.9.5.6.1.6 一个子加一个牧的右半边是什么字 某家庭电路的电能表上标有"220V,5A"的字样,电路中接入40W的电灯5盏,70W的彩电一台,100W的冰箱一台,700W的电饭煲一只,在这些用电器同时使用时,能否再接上一只500W的电热器?通过计算说明. 一只"220V 5A"的电能表,最多可以装"220BV 40W"的电灯几盏 圆O1与圆O2内切于点P,圆O2的弦AB经过圆O1的圆心交圆O1于C,D,若AC:CD:DB=3:4:2,圆O1与圆O2的直径之比为多少? 某家庭电能表上标有 “220V 10A(20A)” 字样,那么该家庭电路中允许 一只标着220v 2.5A的电能表,正常工作时最多能装220v 40w的电灯多少盏? 如图,圆O1和圆O2内切于点A且圆O1的半径是圆O2半径的3倍,作大圆弦AB交小圆于点C 求证:BC=2AC 家庭电能表上标有 220V 2.5(10)A 字样,电路所能接入的最大功率是多少?网上有人按2.5A,有人按10A算.我的老师曾说过按额定电流计算,但电饭煲都800W了,若按220V×2.5A计算,最大功率不过550W,一个家 有一只"220V,5A"的电能表,按规定最多可接"220,40W"的电灯( ) A.25盏 B.27盏 C.28盏 D.30盏 英文翻译:我想我知道原因了,对不起,同时也谢谢你 小强身高1.4米,肯定能蹚过平均水深1.35米的小河,不会有危险.( ) 绘制设计机械图的软件都有哪些?绘制平面机械图的软件都有哪些?绘制三维机械图的软件又有哪些? 某人现存入银行20000元,在年利率为6%的情况下,今后10年内每年年末从银行可提取的相等金额的现金是多少 小强身高1.45米,他蹚过平均水深1.3米的小河,肯定没有危险 含有韩左半边的所有字~拼音也要
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘