【问题标题】:Windows Explorer renames files when copying and an existing file is found复制时 Windows 资源管理器重命名文件并找到现有文件
【发布时间】:2016-07-12 10:36:02
【问题描述】:

Windows 资源管理器在复制时重命名文件并找到现有文件 - 我们是否可以从 Delphi 代码访问该工具?

使用TFile.Copy() 时,编写代码来重命名目标文件名相当简单,但如果可用的话,最好使用现有代码。

【问题讨论】:

  • 你应该试试shell函数来复制文件。

标签: delphi winapi


【解决方案1】:

IFileOperation 是 shell 文件复制功能的 API。使用它来复制 shell 的行为。在您的情况下,您将需要使用 SetOperationFlags 来指定 FOF_RENAMEONCOLLISION 标志:

如果具有目标名称的项目已存在,则在移动、复制或重命名操作中为正在操作的项目指定一个新名称。

【讨论】:

  • 请注意,IFileOperation 仅适用于 Vista+。在 XP 和更早版本上,请改用 SHFileOperation()。它还有一个FOF_RENAMEONCOLLISION 标志。
猜你喜欢
  • 1970-01-01
  • 2018-07-15
  • 2020-05-27
  • 2010-12-30
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多