delphi 复制文件夹的函数

该示例展示了如何使用 Delphi 实现目录及其文件的复制操作。通过遍历指定源目录下的所有文件,并利用 Windows 外壳 API 进行静默复制到目标目录。特别地,此过程会忽略名为 'database.dat' 的文件及所有子目录。
 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; 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值