如何批量改文件名(200分)

  • 主题发起人 bibibidqiu
  • 开始时间
B

bibibidqiu

Unregistered / Unconfirmed
GUEST, unregistred user!
如把文件F100到F200该为F300到F400这样如何实现
同时如何实现文件的条件查询
如能按时间排列,按字母排列等等
(Delphi4.0下)
 
1.在网上找一个软件,www.mydown.com,
电脑报以前有过介绍的。 -- 简单,明了
2。自己编程解决。 --太麻烦了
 
3。利用dos的dir/b >file.bat,得到文件列表,在这个bat文件中加上ren
和其他差数,就得到你要的批处理了,
一运行就,ok了。
 
ren f1* f3*
ren f200 f400
 
我的意思是如文件 GXZ001.xxx 到 GXZ109.xxx
改为BTRE003.xxx 到BTRE112.xxx
要求是在FileListBox中被选择的文件(一般是全选)
而且是例如 GXZ001.gbt
GXZ001.tdk
GXZ001.brt
同名的文件有三个,要一起改,而不是选不同的后缀名来改
 
这样复杂的一个需求,可能要通过写程序实现了。
 
写个程序吧。一会儿就解决了……

findfirst
findnext
renamefile
 
findfirst
findnext
renamefile
 
到 http://www.china-home.net/f/jwjjt/去,有大量的软件是~~~
 
可使用FindFirst,FindNext将欲改名的文件放到一个TStringList中,然后遍历TStringList
对每一文件进行改名操作
 
刚好前几天做了一个批量改名的程序,把某个目录下的文件都改成一致的编号名。
参考一下吧:
procedure TForm1.RenameFiles;
var i,j: integer;
OldFileName, suffix, NewFileName: String;
begin
for i := 0 to FileListBox1.Items.Count -1 do begin
OldFileName := DirectoryListBox1.Directory + '/' + FileListBox1.Items;
j := LastDelimiter('.',OldFileName);
suffix := Copy(OldFileName,j,Length(OldFileName));
NewFileName := Edit1.Text + StringOfChar('0',4 - Length(IntToStr(i)))
+ IntToStr(i) + Suffix;
// ShowMessage(NewFileName);
if not RenameFile(OldFileName,NewFileName) then begin
ShowMessage('文件改名失败: ' + OldFileName + ' ---> ' + NewFileName);
Break
end
end;
FileListBox1.Update
end;
 
AcdSee有这功能。
 
写过一个类似的小程序,有需要发信过来。。。。
mail to:loopy@netease.com
 
少不了条件判断和循环
 
真麻烦,我的一个程序《批量文件设置器》,http://glowing.yeah.net
在“版主拙作”中,自己下载吧。功能强大,完成你所不能想象的工作!

也可以在<a href="http://www.nease.net/~glowing/mysoft/fo22a.exe">这里下载</a>。
 
各位大虾,我已经自己解决了。谢谢你们。
同时,我有另外一个问题是,怎样才能获得键盘的输入。
如:
按住方向键‘右’,就能获得‘右’的信息,触发一个
事件。
还有另外一个问题,是怎么样才能把那个DirectoryOutLine
刷新,如我删除了一个文件后,我希望刷新一下
DirectoryOutLine.
烦请各位大虾帮助我一下。
 
好象没有人理我的问题。
 
要获得键盘的输入,把FORM的keypreview属性改为真,在FORMR的
ONKEYPRESS 各ONKEYDOWN中可以取得键盘所按的键,KEYPRESS是一般键,
KEYDOWN是特殊键,包括方向键和F键等功能键
DirectoryOutLine刷新,,可以看它有无REFRESH方法,或者直接再在它的
Directory或Drive重新再赋一值。
 
多人接受答案了。
 
顶部