文件复制/创建文件夹 ( 积分: 100 )

  • 主题发起人 主题发起人 zsx11111
  • 开始时间 开始时间
Z

zsx11111

Unregistered / Unconfirmed
GUEST, unregistred user!
请问我在使用下列语句进行文件复制及创建文件夹时,总是弹出"无法复制文件 无法读源文件"的错误信息.程序代码如下:
FillChar(lpFileOp, SizeOf(lpFileOp), 0);
with lpFileOp do
begin
Wnd := Self.Handle;
wfunc := FO_COPY;
pFrom := pchar(ExtractFilePath(Application.ExeName)+'html/');
pTo := pchar(ExtractFilePath(Application.ExeName)+s_project_name);
fFlags := FOF_ALLOWUNDO;
hNameMappings := nil;
lpszProgressTitle := nil;
fAnyOperationsAborted := True;
end;

if SHFileOperation(lpFileOp) <> 0 then
begin
ShowMessage('复制失败');
exit;
end ;
急,望高手指点!
 
pFrom := pchar(ExtractFilePath(Application.ExeName)+'html/*.*');
 
pFrom := pchar(ExtractFilePath(Application.ExeName)+'html/');
有问题,看看帮助
 
关键还是 目录和路径的概念区别,我刚才问了一个正在考计算机一级考试的阿姨,她说
c:/banknote 通常表示 目录
c:/banknote/ 表示 路径
她在考试时好像就考到这个题目的,DOS基础教程里好像有讲解的。

pFrom 对应的应该是 目录(dir) 不是路径(path)
pFrom := pchar(ExtractFilePath(Application.ExeName)+'html');

楼主试试,去掉一个/
 
我试着将'html/'改为'html'与'html/*.*'还是出现一样的错误。
现在要复制的html文件夹下既有文件又有目录。
 
这分是我的了。
问题出来pfrom和pto上,你仔细看看它们的定义就明白了。这两个参数的最后要求带两个#0,所以,你改成:
pFrom := pchar(ExtractFilePath(Application.ExeName)+'html/'#0#0);
pTo := pchar(ExtractFilePath(Application.ExeName)+s_project_name+#0#0);
就可以执行了!
 
后退
顶部