如何复制多个文件并使用通配符

时间:2014-10-14 15:30:20

标签: delphi

为什么这不起作用的任何想法?没有错误,我的文本文件只是不复制。

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;

1 个答案:

答案 0 :(得分:4)

您没有错误,因为您没有检查对SHFileOperation的调用的返回值。可能存在错误,但您无法了解它,因为您忽略了检查它。

你遇到的另一个问题是你没有双重null终止字符串,如文档中所述。就这样:

FO.pFrom := PChar(Source + #0);
FO.pTo := PChar(Target + #0);

鉴于您所犯的这些错误,我建议您再仔细阅读文档。