B
bianconeri
Unregistered / Unconfirmed
GUEST, unregistred user!
源程序如下,是从一个文本文件中读取相应的字符串作为新文件名,现在可以给第一个文件重命名(在我的机器上面已经可以,但是不知道怎么在别人机器上不行,这个现在不是主要问题),主要是不知道应该怎么使用findnext来给其他文件重命名。不用考虑子目录,程序和文本在同一目录下。暂时只需使用指定目录,不用太麻烦。
同时这样改名连扩展名也一起改了,有没有办法不改文件的扩展名?
procedure TForm1.Button1Click(Sender: TObject);
var
i, Counter,iBegin, iEnd, iLong: integer;
S, Tempname1,Tempname2: String;
List: TStringList;
SR:Tsearchrec;
begin
if findfirst('E:/*.*',faArchive,SR)=0 then
Tempname1:=ExtractFilename(SR.name);
List := TStringList.Create;
List.LoadFromFile('test.txt');
for Counter := 0 to List.Count - 1 do
begin
S := List[Counter];
i := Pos(Tempname1, S);
if i <> 0 then
begin
iBegin := Pos('[', S);
iEnd := Pos(']', S);
iLong := iEnd - iBegin;
tempname2:= Copy(S, iBegin + 1, iLong - 1);
end;
end;
renamefile(tempname1,tempname2);
List.Free;
同时这样改名连扩展名也一起改了,有没有办法不改文件的扩展名?
procedure TForm1.Button1Click(Sender: TObject);
var
i, Counter,iBegin, iEnd, iLong: integer;
S, Tempname1,Tempname2: String;
List: TStringList;
SR:Tsearchrec;
begin
if findfirst('E:/*.*',faArchive,SR)=0 then
Tempname1:=ExtractFilename(SR.name);
List := TStringList.Create;
List.LoadFromFile('test.txt');
for Counter := 0 to List.Count - 1 do
begin
S := List[Counter];
i := Pos(Tempname1, S);
if i <> 0 then
begin
iBegin := Pos('[', S);
iEnd := Pos(']', S);
iLong := iEnd - iBegin;
tempname2:= Copy(S, iBegin + 1, iLong - 1);
end;
end;
renamefile(tempname1,tempname2);
List.Free;