我有文件如下:
d:\a\a.jad
d:\a\b.jad
d:\a\c.jad
d:\a\d.jad
d:\b\a.jad
d:\b\b.jad
d:\b\c.jad
d:\b\d.jad
要将他们改变成:
d:\a\a.java
d:\a\b.java
d:\a\c.java
d:\a\d.java
d:\b\a.java
d:\b\b.java
d:\b\c.java
d:\b\d.java
d:\a\a.jad
d:\a\b.jad
d:\a\c.jad
d:\a\d.jad
d:\b\a.jad
d:\b\b.jad
d:\b\c.jad
d:\b\d.jad
要将他们改变成:
d:\a\a.java
d:\a\b.java
d:\a\c.java
d:\a\d.java
d:\b\a.java
d:\b\b.java
d:\b\c.java
d:\b\d.java
procedure FindFiles(vDir, vType: String; var vList: TStrings);
var
sr: TSearchRec;
begin
if FindFirst(vDir + '*.*', faAnyFile, sr) = 0 then
repeat
if (sr.Name <> '.') and (sr.Name <> '..') then
if (sr.Attr and faDirectory) <> 0 then
FindFiles(vDir + sr.Name + '\', vType, vList)
else
if (vType = '') or (LowerCase(ExtractFileExt(sr.Name)) = LowerCase('.' + vType)) then
vList.Add(vDir + sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;procedure TForm1.Button1Click(Sender: TObject);
var
vStrs: TStrings;
i: Integer;
begin
vStrs := TStringList.Create;
FindFiles('d:\', '*.jad', vStrs);
//修改文件名
for i := 0 to vStrs.Count - 1 do
RenameFile(vStrs[i], Copy(vStrs[i], 1, Length(vStrs[i]) - 1) + 'va');
end;
----------
刚写的,楼主试试
FindFiles('d:\', 'jad', vStrs);-----------------------------------
测试通过了
ren d:\a\*.jad *.java
-----------------------------------
//查找文件
procedure FindFiles(vDir, vType: String; var vList: TStrings);
var
sr: TSearchRec;
begin
if FindFirst(vDir + '*.*', faAnyFile, sr) = 0 then
repeat
if (sr.Name <> '.') and (sr.Name <> '..') then
if (sr.Attr and faDirectory) <> 0 then
FindFiles(vDir + sr.Name + '\', vType, vList)
else
if (vType = '') or (LowerCase(ExtractFileExt(sr.Name)) = LowerCase('.' + vType)) then
vList.Add(vDir + sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;//批量修改后缀名
//例:ChangeFilesExt('d:\', 'jad', 'java');
procedure ChangeFilesExt(vDir, vOldType, vNewType: String);
var
vStrs: TStrings;
i: Integer;
begin
vStrs := TStringList.Create;
FindFiles(vDir, vOldType, vStrs);
//修改文件名
for i := 0 to vStrs.Count - 1 do
RenameFile(vStrs[i], Copy(vStrs[i], 1, Length(vStrs[i]) - Length(vOldType)) + vNewType);
end;
一个edit用来输入要更改的目标文件类型||(*.java),这样做是知道要做的目的是什么;
最后更改并且保存
Delphi中能調用dos命令嗎?