You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简单实现复制文件夹内容且不包含其子文件夹的功能?

实现方案

你可以基于Delphi自带的System.IOUtils单元封装轻量函数实现需求,无需引入第三方依赖:

可直接调用的函数代码

uses
  System.SysUtils, System.IOUtils;

procedure CopyFilesOnly(const SourceDir, TargetDir: string; OverwriteExisting: Boolean = True);
var
  SrcFile: string;
  TargetFilePath: string;
begin
  // 目标目录不存在时自动创建
  if not TDirectory.Exists(TargetDir) then
    TDirectory.CreateDirectory(TargetDir);

  // 仅枚举源目录根层级的所有文件,不遍历子目录
  for SrcFile in TDirectory.GetFiles(SourceDir, '*.*', TSearchOption.soTopDirectoryOnly) do
  begin
    TargetFilePath := TPath.Combine(TargetDir, TPath.GetFileName(SrcFile));
    TFile.Copy(SrcFile, TargetFilePath, OverwriteExisting);
  end;
end;

调用示例

直接替换你原来的TDirectory.Copy调用即可:

// 仅复制C:\folder下的所有文件到C:\folder2,忽略所有子文件夹
CopyFilesOnly('C:\folder', 'C:\folder2');

补充说明

核心逻辑通过TSearchOption.soTopDirectoryOnly参数限制仅扫描源目录第一层文件,不会递归读取子目录内容。如果需要处理异常场景(如文件被占用、无读写权限),可在TFile.Copy外层加try...except块自行适配业务逻辑。


内容的提问来源于stack exchange,提问作者Codrut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 15:36:03