码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi拷贝目录(含子目录)的方法

时间:2014-10-18 15:26:35      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   for   文件   div   on   log   size   

要实现目录级的拷贝,可以利用Windows API函数ShFileOperation( ),其函数声明如下:  
  
WINSHELLAPI int WINAPI SHFileOperation(  
    LPSHFILEOPSTRUCT lpFileOp  
);  
  
实例:  
  
新建一个工程,其程序示例如下:  
  
unit Unit1;  
  
interface  
  
uses  
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
Dialogs, StdCtrls,ShellApi;  
//注意:必须引用ShellApi单元  
  
type  
TForm1 = class(TForm)  
Button1: TButton;  
procedure Button1Click(Sender: TObject);  
private  
{ Private declarations }  
public  
{ Public declarations }  
end;  
  
var  
Form1: TForm1;  
  
implementation  
  
{$R *.dfm}  
  
procedure TForm1.Button1Click(Sender:TObject);  
var  
OpStruc:TSHFileOpStruct;  
frombuf,tobuf:Array[0..128]of Char;  
begin  
FillChar(frombuf,Sizeof(frombuf),0);  
FillChar(tobuf,sizeof(tobuf),0);  
//假设将C:\temp1目录下的所有文件复制到C:\temp2目录下  
StrPCopy(frombuf,‘C:\temp1\*.*‘);    //(\*.*)可去掉  
StrPCopy(tobuf,‘C:\temp2‘);  
With OpStruc Do  
begin  
    Wnd:=Handle;  
    wFunc:=FO_COPY;  
    pFrom:=@frombuf;  
    pTo:=@tobuf;  
    fFlags:=FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;  
    fAnyOperationsAborted:=false;  
    hNameMappings:=Nil;  
    lpszProgressTitle:=Nil;  
end;  
ShFileOperation(OpStruc);  
end;  
  
end.  
  
    通过本程序,可以将某一子目录及其下面的所有文件(包括下级子目录)拷贝到另一个子目录,如果目标目录不存在,则会自动创建它,从而实际一些自动备份的功能。  
   

  

Delphi拷贝目录(含子目录)的方法

标签:blog   io   ar   for   文件   div   on   log   size   

原文地址:http://www.cnblogs.com/qingsong/p/4033104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!