为什么这不起作用的任何想法?没有错误,我的文本文件只是不复制。
procedure TForm1.CopyFiles(Source, Target: string);
var
FO: TShFileOpStruct;
begin
FillChar(FO,SizeOf(FO),#0);
FO.Wnd := Form1.Handle;
FO.wFunc := FO_COPY;
FO.pFrom := PChar(Source);
FO.pTo := PChar(Target);
ShFileOperation(FO);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFiles('c:\test\*.txt','c:\test2\');
end;
答案 0 :(得分:4)
您没有错误,因为您没有检查对SHFileOperation
的调用的返回值。可能存在错误,但您无法了解它,因为您忽略了检查它。
你遇到的另一个问题是你没有双重null终止字符串,如文档中所述。就这样:
FO.pFrom := PChar(Source + #0);
FO.pTo := PChar(Target + #0);
鉴于您所犯的这些错误,我建议您再仔细阅读文档。