使用Rename()过程,Delphi中的Sample脚本为: uses Dialogs; var f : file; begin OpenDialog1.Title := 'Choose a file... '; if OpenDialog1.Execute then begin SaveDialog1.Title := 'Rename to...'; if SaveDialog1.Execute then begin AssignFile(f, OpenDialog1.FileName); Canvas.TextOut(5, 10, 'Renaming ' + OpenDialog1.FileName + ' to ' + SaveDialog1.FileName); Rename(f, SaveDialog1.FileName); end; end; end;
我以前做的一个查找文件的子程序,如下: procedure TForm1.SearchFile(strDir :string); var FName:THANDLE; strTemp,strTemp1 :string; ss :WIN32_FIND_DATA; begin FName :=FindFirstFile(PChar(strDir),ss); if FName <>INVALID_HANDLE_VALUE then begin strTemp:=string(ss.cFileName); if UpperCase(strTemp) =UpperCase(Edit2.Text) then begin strTemp1 :=strDir; Delete(strTemp1,length(strTemp1)-2,3); ListBox1.Items.Add(strTemp1+strTemp); end; if strTemp[1] <>'.' then begin if ss.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then begin SearchFile(strDir +strTemp+'\*.*'); strDir :=strDir +'*.*'; end; end; end else exit; while FindNextFile(FName,ss)do begin strTemp :=string(ss.cFileName); if UpperCase(strTemp) =UpperCase(Edit2.Text) then begin strTemp1 :=strDir; Delete(strTemp1,length(strTemp1)-2,3); ListBox1.Items.Add(strTemp1+strTemp); end; if strTemp[1] <>'.' then begin if ss.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then begin delete(strDir,length(strDir)-2,3); SearchFile(strDir +strTemp+'\*.*'); strDir :=strDir +'*.*'; end; end; end; end;说明一下:Edit1中放的是目录,格式如 "D:\*.*" Edit2中放的是要查找的文件 如"aa.txt" ListBox1中放的是查找结果.可以如下调用: ListBox1.Clear; SearchFile(Edit1.text);
修改文件属性可用SetFileAttributes函数
uses Dialogs;
var f : file;
begin
OpenDialog1.Title := 'Choose a file... ';
if OpenDialog1.Execute then begin
SaveDialog1.Title := 'Rename to...';
if SaveDialog1.Execute then begin
AssignFile(f, OpenDialog1.FileName);
Canvas.TextOut(5, 10, 'Renaming ' + OpenDialog1.FileName + ' to ' +
SaveDialog1.FileName);
Rename(f, SaveDialog1.FileName);
end;
end;
end;
procedure TForm1.SearchFile(strDir :string);
var
FName:THANDLE;
strTemp,strTemp1 :string;
ss :WIN32_FIND_DATA;
begin
FName :=FindFirstFile(PChar(strDir),ss);
if FName <>INVALID_HANDLE_VALUE then begin
strTemp:=string(ss.cFileName);
if UpperCase(strTemp) =UpperCase(Edit2.Text) then begin
strTemp1 :=strDir;
Delete(strTemp1,length(strTemp1)-2,3);
ListBox1.Items.Add(strTemp1+strTemp);
end;
if strTemp[1] <>'.' then begin
if ss.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then begin
SearchFile(strDir +strTemp+'\*.*');
strDir :=strDir +'*.*';
end;
end;
end else exit; while FindNextFile(FName,ss)do begin
strTemp :=string(ss.cFileName);
if UpperCase(strTemp) =UpperCase(Edit2.Text) then begin
strTemp1 :=strDir;
Delete(strTemp1,length(strTemp1)-2,3);
ListBox1.Items.Add(strTemp1+strTemp);
end;
if strTemp[1] <>'.' then begin
if ss.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then begin
delete(strDir,length(strDir)-2,3);
SearchFile(strDir +strTemp+'\*.*');
strDir :=strDir +'*.*';
end;
end;
end;
end;说明一下:Edit1中放的是目录,格式如 "D:\*.*"
Edit2中放的是要查找的文件 如"aa.txt"
ListBox1中放的是查找结果.可以如下调用:
ListBox1.Clear;
SearchFile(Edit1.text);