copyfile使用方法

copyfile使用方法

2023年7月6日发(作者:)

BCB利用API函数(CopyFile)传送文件2007年04月02日 星期一 21:30可以很容易地调用API函数CopyFile, DeleteFile, 以及MoveFile来复制、删除、移动文件,这些功能相当容易使用,但是他们不显示飞行文件夹动画。下面是每一个API的例子。

//复制到,FALSE参数告诉windows如果文件

//已经存在则复制失败,CopyFile的返回值是BOOL类型

if( CopyFile('C:','C:', FALSE) == FALSE)

Application->MessageBox('CopyFile failed', 'Error', MB_OK);

//如果移动或删除失败则返回FALSE

MoveFile('C:','C:');

DeleteFile('C:');

这些功能很容易使用,但是不幸但是他们不显示飞行文件夹动画。为了显示动画,你必须使用SHFileOperation 这个API函数。下面是用SHFileOperation完成上面的操作的例子,注意复制和移动操作一定要指定目标文件夹。

//确认你包含了头文件SHELLAPI.H

//如果你好奇的话,这个文件地位置在INCLUDEWIN32目录下

#include

// 复制到;

char *From = 'C:0';

char *To = 'C:0';

SHFILEOPSTRUCT op;

ZeroMemory(&op, sizeof(op));

= Handle; // 主窗体或应用程序的句柄

= FO_COPY;

= From;

= To;

= 0;

SHFileOperation( &op);

// 移动到windows的临时目录

char *From = 'C:0';

char *To = 'C:WINDOWSTEMP0';

SHFILEOPSTRUCT op;

ZeroMemory(&op, sizeof(op));

= Handle;

= FO_MOVE;

= From;

= To;

= 0; SHFileOperation( &op);

//把所有的临时文件删除到回收站

char *File = 'C:windowstemp*.TMP0';

SHFILEOPSTRUCT op;

ZeroMemory(&op, sizeof(op));

= Handle;

= FO_DELETE;

= File;

= FOF_ALLOWUNDO;

SHFileOperation( &op);

// 复制根目录所有的文本文件到临时目录。

char *From = 'C:*.TXT0';

char *To = 'C:WINDOWSTEMP0';

SHFILEOPSTRUCT op;

ZeroMemory(&op, sizeof(op));

= Handle;

= FO_COPY;

= From;

= To;

= 0;

SHFileOperation( &op);

注意:

1:当你指定FO_DELETE操作的时候,如果fFlags包含FOF_ALLOWUNDO,文件将送到回收站,否则它们将被删除.

2:op结构的项目pFrom和pTo是字符指针,而不是数组.它们必须指向一个字符串,因为结构不含有任何存储空间,不能这样做:

= 'C:*.TXT';

= 'C:TEMP';

3:在文件名字符串中注意到额外的终止符0(在字符串中的'0')。MSDN文档表明pTo和pFrom字符串一定是双重零结束。

4:pFrom和pTo指向的内存可以包含多个字符串,字符串之间用0分隔,最后也要用双重0结束,下面是一个例子:

char *From = 'C:*.txt0C:*.log0C:*.tmp0';

= From; //也可以用空白分隔

char *From = 'C:*.txt0'

'C:*.log0'

'C:*.tmp0';

5:当复制或者移动文件的时候,在fFlags参数中包含FOF_RENAMEONCOLLISION将阻止函数改写现存的文件,shell将建立名字叫做“复件 原文件名”的复制品(资源管理器就是这样做的).

6:你能也指定FO_RENAME作为wFunc参数.fFlags参数能包含很多其它高级方式,更多信息请参阅文件.

-----------------------------------------------------------------------------------------------------------------

WinExec(" /c copy d: c: ", SW_SHOW);

CopyFile("d:","c:",TRUE);

ShellExecute(NULL, "open", "", "/k copy d: c: ", NULL,

SW_SHOW);

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688598353a153671.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信