重新命名:
用MoveFile()或者下面的函数也可以。
//RenDirectory('d:\wt2','d:\bcde');
function RenDirectory(const OldName,NewName:string): boolean;
var
fo: TSHFILEOPSTRUCT;
begin
FillChar(fo, SizeOf(fo), 0);
with fo do
begin
Wnd := 0;
wFunc := FO_RENAME;
pFrom := PChar(OldName+#0);
pTo := pchar(NewName+#0);
fFlags := FOF_NOCONFIRMATION+FOF_SILENT;
end;
Result := (SHFileOperation(fo) = 0);
end;
//Copy 多个文件的处理:
function CopyFiles(const Source,Dest: string): boolean;
var
fo: TSHFILEOPSTRUCT;
begin
FillChar(fo, SizeOf(fo), 0);
with fo do
begin
Wnd := 0;
wFunc := FO_COPY;
pFrom := @source[1];
pTo :=pchar(dest);
fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR ;
end;
Result := (SHFileOperation(fo) = 0);
end;procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
i:integer;
begin
if opendialog1.Execute then
begin
for i:=0 to OpenDialog1.Files.Count-1 do
str:=str+OpenDialog1.Files.strings[i]+#0;
showmessage(str);
str:=str+#0;
CopyFiles(str,'d:\temp');
end;
end;
用MoveFile()或者下面的函数也可以。
//RenDirectory('d:\wt2','d:\bcde');
function RenDirectory(const OldName,NewName:string): boolean;
var
fo: TSHFILEOPSTRUCT;
begin
FillChar(fo, SizeOf(fo), 0);
with fo do
begin
Wnd := 0;
wFunc := FO_RENAME;
pFrom := PChar(OldName+#0);
pTo := pchar(NewName+#0);
fFlags := FOF_NOCONFIRMATION+FOF_SILENT;
end;
Result := (SHFileOperation(fo) = 0);
end;
//Copy 多个文件的处理:
function CopyFiles(const Source,Dest: string): boolean;
var
fo: TSHFILEOPSTRUCT;
begin
FillChar(fo, SizeOf(fo), 0);
with fo do
begin
Wnd := 0;
wFunc := FO_COPY;
pFrom := @source[1];
pTo :=pchar(dest);
fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR ;
end;
Result := (SHFileOperation(fo) = 0);
end;procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
i:integer;
begin
if opendialog1.Execute then
begin
for i:=0 to OpenDialog1.Files.Count-1 do
str:=str+OpenDialog1.Files.strings[i]+#0;
showmessage(str);
str:=str+#0;
CopyFiles(str,'d:\temp');
end;
end;
procedure mycopyfile(s,d:string);
var
sr,temp:tsearchrec;
begin if findfirst(s+'\*.*',faanyfile,sr)=0 then
begin
if (sr.name<> '.')and(sr.name<>'..') then
begin
if sr.Attr=fadirectory then
begin
if findfirst(d+'\'+sr.name,faanyfile,temp)=0 then
createdirectory(pchar(d+'\'+sr.name),lps);
mycopyfile(s+'\'+sr.name,d+'\'+sr.name);
end
else
copyfile(pchar(s+'\'+sr.name),pchar(d+'\'+sr.name),false);
end;
while findnext(sr)=0 do
begin
if (sr.name<> '.')and(sr.name<>'..') then
if sr.Attr=fadirectory then
begin
if findfirst(PCHAR(d+'\'+sr.name),fadirectory,temp)<>0 then
createdirectory(pchar(d+'\'+sr.name),lps);
temp:=sr;
mycopyfile(s+'\'+sr.name,d+'\'+sr.name);
sr:=temp;
end
else
copyfile(pchar(s+'\'+sr.name),pchar(d+'\'+sr.name),false);
end;
findclose(sr);
end;
end;
注意要先关闭文件,
varDataRec: TDataRec;
BackFile: File of TDataRec;
FileName: String;
begin
FileName:= GetCurrentDir + '\1.dat';
AssignFile (BackFile,FileName);
Rewrite(BackFile);
......
Closefile(BackFlie);
s := GetCurrentDir+ '\bb.dat';
RenameFile(FileName, s);
end;
注意要先关闭文件,
varDataRec: TDataRec;
BackFile: File of TDataRec;
FileName: String;
begin
FileName:= GetCurrentDir + '\1.dat';
AssignFile (BackFile,FileName);
Rewrite(BackFile);
......
Closefile(BackFlie);
s := GetCurrentDir+ '\bb.dat';
RenameFile(FileName, s);
end;
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;复制function CopyFileTo(const Source: string; const Destination: string): Boolean这个很好用。