现在的位置: 首页 > 综合 > 正文

delphi 复制文件夹的函数

2013年07月08日 ⁄ 综合 ⁄ 共 1185字 ⁄ 字号 评论关闭
 procedure   ShellCopy(const   dir1:string;   const   dir2:string);   /////格式shellcopy('d:/1/*.*','e:/1/');///windows外壳拷贝
  var
  f:TSearchRec;
  na,sdir:string;
  s:tstringlist;
  i:integer;
  fshell:TSHFileOpStruct;
  begin
        s:=tstringlist.Create;
        //////////////////////
        if   (not   DirectoryExists(dir2))   then   CreateDir(dir2);
        sdir:=dir1;
        delete(sdir,length(sdir)-2,3);
        if   FindFirst(dir1,faAnyFile,f)=0   then
            begin
                if   (f.Name<>'database.dat')   and   (f.Attr<>faDirectory)   then
                    begin   s.Add(f.Name)   end;
                repeat
                  na:=f.Name;
                  FindNext(f);
                  if   (na<>f.Name)   and   (f.Name<>'database.dat')   and   (f.Attr<>faDirectory)   then
                      begin   s.Add(f.Name);   end;
                until   na=f.Name;
            end;
        //////////////////////
        fshell.Wnd:=form1.Handle;
        fshell.wFunc:=FO_COPY;
        fshell.fFlags:=FOF_SILENT;
        for   i:=0   to   s.Count-1   do
            begin
                fshell.pFrom:=pansichar(sdir+s.Strings[i]);
                fshell.pTo:=pansichar(dir2+s.strings[i]);
                SHFileOperation(fshell);
            end;
  end; 

抱歉!评论已关闭.