var T:TSHFileOpStruct; begin With T do Begin //5 Wnd:=0; wFunc:=FO_MOVE; pFrom:=Pchar(sourwebpath1); pTo:=Pchar(destwebpath1); fFlags:=FOF_SIMPLEPROGRESS; hNameMappings:=nil; lpszProgressTitle:='正在移动文件夹'; fAnyOperationsAborted:=False; End; //5 SHFileOperation(T);end
winexec('cmd /k move e:\*.mpg d:\mpg\',sw_hide);
调用dos命令只能把根目录下的转移,无法把根目录下的文件转移
下面这个程序肯定可以实现。 procedure Tform1.maketree; var sr:Tsearchrec; err:integer; begin err:=findfirst('*.*',$3f,sr); while (err=0) do begin if sr.Name[1]<>'.' then begin if (sr.Attr and fadirectory)=0 then begin winexec('cmd /k move e:\*.mpg d:\mpg\',sw_hide); end; if (sr.Attr and fadirectory)=16 then begin chdir(sr.name); winexec('cmd /k move *.mpg d:\mpg\',sw_hide); maketree; chdir('..'); end; end; err:=findnext(sr); end; end; procedure TForm1.Button1Click(Sender: TObject); begin chdir('e:\'); maketree; end;
procedure TForm1.Button1Click(Sender: TObject);
begin
winexec('cmd /k move e:\*.mpg d:\mpg\',sw_hide);
end;
T:TSHFileOpStruct;
begin
With T do
Begin //5
Wnd:=0;
wFunc:=FO_MOVE;
pFrom:=Pchar(sourwebpath1);
pTo:=Pchar(destwebpath1);
fFlags:=FOF_SIMPLEPROGRESS;
hNameMappings:=nil;
lpszProgressTitle:='正在移动文件夹';
fAnyOperationsAborted:=False;
End; //5
SHFileOperation(T);end
procedure Tform1.maketree;
var
sr:Tsearchrec;
err:integer;
begin
err:=findfirst('*.*',$3f,sr);
while (err=0) do
begin
if sr.Name[1]<>'.' then
begin
if (sr.Attr and fadirectory)=0 then
begin
winexec('cmd /k move e:\*.mpg d:\mpg\',sw_hide);
end;
if (sr.Attr and fadirectory)=16 then
begin
chdir(sr.name);
winexec('cmd /k move *.mpg d:\mpg\',sw_hide);
maketree;
chdir('..');
end;
end;
err:=findnext(sr);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
chdir('e:\');
maketree;
end;