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

再也没有了

我只想复制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,并且对代码的可移植性不感兴趣,则可以恢复使用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终止字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用scp复制具有某些扩展名的文件

仅移动具有某些扩展名的文件

如何创建zip归档文件,仅包含具有某些扩展名的文件

排除要由rsync复制的具有某些扩展名的文件

如何查找具有特定扩展名的文件,而仅排除当前目录中的某些名称?

使用rsync复制除具有特定扩展名的某些文件名以外的所有文件

从具有多个扩展名的文件名中删除某些扩展名

查找具有某些扩展名的文件

如何递归搜索具有某些扩展名的文件?

从多个目录复制具有特定扩展名的文件

复制具有多个扩展名的文件

grep,但仅某些文件扩展名

根据父文件夹重命名每个文件时,仅复制具有特定扩展名的文件

如何复制仅具有1个扩展名而不在命令提示符下加倍的文件

Bash:复制根/当前文件夹中具有相同扩展名的所有文件,但文件名包含某些字符串的文件除外

从资产文件夹获取仅具有.txt扩展名的文件的文件名

在bash 3.2中复制具有扩展扩展名的多个文件的数组

复制包含具有给定扩展名的文件的所有文件夹

仅当在名为Y的文件夹中时,才包含具有扩展名X的某些文件:忽略git中TypeScript生成的JavaScript文件

从所有子目录复制具有特定扩展名的所有文件

C#WPF-仅允许某些文件扩展名

JavaFX拖放:仅接受某些文件扩展名

如何使用package.json脚本复制具有特定文件扩展名的文件

使用保留的文件夹树结构复制具有指定扩展名的文件

通过SCP仅复制不带扩展名的文件

使用Java从远程服务器复制具有特定扩展名的所有文件

复制所有具有特定扩展名的文件,同时维护目录树

如何使用Python递归复制目录中具有特定扩展名的所有文件?

如何复制具有某些扩展名的文件,从而通过scp --parents保持从远程到本地计算机的路径?