请问用什么delphi函数可以把一个文件复制到另一个目录下面(30分)

  • 主题发起人 主题发起人 szfy
  • 开始时间 开始时间
S

szfy

Unregistered / Unconfirmed
GUEST, unregistred user!
就是复制文件到新目录,用什么函数。
 
没有知道吗?
 
copyfile在delphi的帮助里不存在啊
 
用API函数
CopyFile
 
copyfile 方法
从一个位置向另一个位置复制一个或多个文件。

object.CopyFile ( source, destination[, overwrite] )

参数
object

必选项。 object 应为 FileSystemObject的名称。

source

必选项。 指定文件字符串,可以包含通配字符来复制一个或多个文件。

destination

必选项。 目的字符串,文件将从 source 复制到这里。 不允许通配字符。

overwrite

可选项。 Boolean 值,指明是否覆盖已有文件。 如果为 true ,则文件将被覆盖;如果为 false ,则文件不会被覆盖。 默认的是 true 。 注意,如果 destination 设置了只读属性,那么无论 overwrite 的值是什么, CopyFile 都会失败。

说明
通配字符只能用在 source 参数中最后的路径成分中。 举例来说,可以使用:

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c://mydocuments//letters//*.doc", "c://tempfolder//")
 
龙之吻的办法,使用API函数CopyFile。如:
CopyFile('c:/autoexec.bat', 'd:/my.bat', false);
具体请参照delphi的F1。

如果要拷贝多个文件或整个目录,可以使用SHFileOperation。例子:
uses ShellAPI;

procedure TForm1.Button1Click(Sender: TObject) ;
var
Fos : TSHFileOpStruct;
Buf : array[0..4096] of char;
p : pchar;
sDest : string;
begin
FillChar(Buf, sizeof(Buf), #0) ;
p := @buf;
p := StrECopy(p, 'C:/FirstFile.ext1') + 1;
p := StrECopy(p, 'C:/SecondFile.ext2') + 1;
StrECopy(p, 'C:/ThirdFile.ext3') ;

sDest := 'e:/';

FillChar(Fos, sizeof(Fos), #0) ;
with Fos do begin
Wnd := Handle;
wFunc := FO_COPY;
pFrom := @Buf;
pTo := sDest;
fFlags := 0;
end;
if ((SHFileOperation(Fos) <> 0) or
(Fos.fAnyOperationsAborted <> false)) then
ShowMessage('操作被用户取消了')
end;

例子中的文件名可以使用通配符。
 
filesystemobject 对象
提供对计算机文件系统的访问。
 
后退
顶部