gpt4 book ai didi

delphi - Delphi仅复制具有某些扩展名的文件

转载 作者:行者123 更新时间:2023-12-01 20:24:24 25 4
gpt4 key购买 nike

我只想复制pdf文件。如果我知道文件名,我正在使用此方法:

CopyFile(PChar(obPath.CaseTmpPath + '\' + currentCase.patientCase + '\Info_' + currentCase.patientCase + '.cxt'), PChar(obPath.ServerData + currentCase.patientCase + '\Info_' + currentCase.patientCase + '.cxt'), true);

这次,我不知道文件名。目录中有一些文件,例如pdf,jpegs。我只想复制pdf文件,但是如何?

最佳答案

如果您仅使用Windows,并且对代码可移植性不感兴趣,则可以恢复使用win api:

uses
ShellApi;

function MultiFileCopy(const ASource, ADest: string): Boolean;
var
FO: TSHFileOpStruct;
begin
FillChar(FO, SizeOf(FO), #0);
FO.Wnd := 0;
FO.wFunc := FO_COPY;
FO.pFrom := PChar(ASource + #0);
FO.pTo := PChar(ADest + #0);
FO.fFlags := FOF_FILESONLY or FOF_NOERRORUI or FOF_NOCONFIRMATION or FOF_SILENT;
Result := (SHFileOperation(FO) = 0)and(not FO.fAnyOperationsAborted);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(BoolToStr(MultiFileCopy('C:\*.pdf', 'X:\'), True));
end;

上面的代码包含一些使方法完全静音的技巧,请阅读有关标志的SHFileOperation和SetErrorMode的文档( ,因为David指出SetErrorMode(SEM_FAILCRITICALERRORS)在应用程序初始化期间应仅被调用一次)

正如Remy在评论#0中所说的那样,之所以存在,是因为需要双null终止的字符串。

关于delphi - Delphi仅复制具有某些扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com