关闭

delphi 复制文件夹的函数

2091人阅读 评论(0) 收藏 举报
 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; 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:143953次
    • 积分:1894
    • 等级:
    • 排名:千里之外
    • 原创:39篇
    • 转载:26篇
    • 译文:2篇
    • 评论:36条
    文章分类
    最新评论
    情感话题