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:\temp1目录下的所有文件复制到C:\temp2目录下
StrPCopy(frombuf,‘C:\temp1\*.*‘);    //(\*.*)可去掉
StrPCopy(tobuf,‘C:\temp2‘);
With OpStruc Do
begin
    Wnd:=Handle;
    wFunc:=FO_COPY;
    pFrom:[email protected];
    pTo:[email protected];
    fFlags:=FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
    fAnyOperationsAborted:=false;
    hNameMappings:=Nil;
    lpszProgressTitle:=Nil;
end;
ShFileOperation(OpStruc);
end;  

end.  

    通过本程序,可以将某一子目录及其下面的所有文件(包括下级子目录)拷贝到另一个子目录,如果目标目录不存在,则会自动创建它,从而实际一些自动备份的功能。

  

时间: 2024-10-24 15:21:18

Delphi拷贝目录(含子目录)的方法的相关文章

Linux下wget下载整个FTP目录(含子目录)--转载

[plain] view plain copy wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/* 解释:-nH:不创建以主机名命名的目录.–cut-dirs:希望去掉原来的目录层数,从根目录开始计算.如果想完全保留FTP原有的目录结构,则不要加该参数.-m:下载所有子目录并且保留目录结构.–ftp-user:FTP用户名–ftp-password:FTP密码ftp://*

Makefile 递归遍历目录(含子目录) 编译动态库

这里推荐一本书,Makefile手册,本人正在学习,多交流~ 一.统一编译所有子目录的文件 直接上Makefile内容了, AR=arLD=ldCC=gcc CFLAGS = -O2 -Wall  -I./Test \                -I./Test/Test1 \ #注:"\"后面不能有空格,并且该句写完后最好有个换行 #注释部分推荐在单独的一行编写 #动态库需要 -fPIC  -shared SOFLAGS = -O2 -fPIC -sharedTARGET = .

Linux下wget下载整个FTP目录(含子目录)

wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/* 解释:-nH:不创建以主机名命名的目录.–cut-dirs:希望去掉原来的目录层数,从根目录开始计算.如果想完全保留FTP原有的目录结构,则不要加该参数.-m:下载所有子目录并且保留目录结构.–ftp-user:FTP用户名–ftp-password:FTP密码ftp://*.*.*.*/*:FTP主机地址.最后可以跟目录

delphi EncdDecd.pas单元中Encoding方法出现#$D#$A的解决方法

例如: s:= 'http://detail.tmall.com/item.htm?id=45545826531&abbucket=_AB-M129_B17&acm=03130.1003.1.161728&aldid=4HatiDee&abtest=_AB-LR129-PV129_1393&scm=1003.1.03130.13_45545826531_161728&pos=6#detail'; s:=Encoding(s);  //加密后的字符串中间就会多

C#-拷贝目录内容(文件和子目录)

/// <summary> /// 拷贝目录内容 /// </summary> /// <param name="source">源目录</param> /// <param name="destination">目的目录</param> /// <param name="copySubDirs">是否拷贝子目录</param> public stat

php读取目录及子目录下所有文件名的方法

为了便于操作,先将php读取目录及子目录下所有文件名的方法封装成一个类. // +---------------------------------------------------------------------- // | lidequan [ I CAN DO IT JUST WORK HARD ] // +---------------------------------------------------------------------- // | Copyright (c)

创建目录(单个目录和多级子目录)方法

1. CreateDirectory 创建文件夹(只能创建一级目录) C\C++ 函数原型: CreateDirectory( LPCTSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); 简介: CreateDirectory 是Win32API函数,用于创建文件夹.     参数 lpPathName 表示路径    参数 lpSecurityAttributes 表示安全属性 ======================

Linux复制指定目录及子目录下特定类型的文件

主要参考这个: http://www.2cto.com/os/201208/144996.html 拷贝一些内容就是: 首先建立一个用于测试的目录 可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*.tes文件 目标是保持当前的目录结构,只把txt文件复制出来 方法一:当不需要的文件类型较为单一时,可以通过完全复制然后删除指定类型的文件完成 Step1 使用命令 cp -r test/ test2 将测试目录test下所有内容完全复制到test2. Step2 组合使用find及xa

[转]Delphi调用cmd的两种方法

delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hide);sleep(2000);memo1.Lines.LoadFromFile('c:\1.txt'); 2shellexecute(handle,nil,'cmd.exe',pchar(form2.edit1.text),nil,sw_hide);WinExec主要运行EXE文件.如:WinExec(’