zoukankan      html  css  js  c++  java
  • Delphi拷贝目录(含子目录)的方法

    要实现目录级的拷贝,可以利用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:	emp1目录下的所有文件复制到C:	emp2目录下  
    StrPCopy(frombuf,'C:	emp1*.*');    //(*.*)可去掉  
    StrPCopy(tobuf,'C:	emp2');  
    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.  
      
        通过本程序,可以将某一子目录及其下面的所有文件(包括下级子目录)拷贝到另一个子目录,如果目标目录不存在,则会自动创建它,从而实际一些自动备份的功能。  
       
    

      

  • 相关阅读:
    Confluence wiki——CentOS6.8搭建详解
    ifconfig不显示网卡eth0
    VMware vSphere克隆虚拟机
    VMware ESXI6.0服务器安装
    虚拟化技术的基本介绍
    HTTP协议详解
    Shell中的case命令
    Linux通过ssh登录其他服务器,不用输入密码
    Linux下/etc/passwd、/etc/shadow、/etc/group文件
    Linux挂载详解
  • 原文地址:https://www.cnblogs.com/qingsong/p/4033104.html
Copyright © 2011-2022 走看看