如何将文件复制到同一目录(win32)

时间:2013-06-22 10:37:37

标签: winapi

假设我在目录D1中有一个名为f1.txt的文件 如果我在资源管理器中剪切粘贴此文件,我会得到一个名为f1-(复制).txt的文件。我想在早期版本中我会得到f1(2).txt。
无论如何,只要在Win32中只提供文件路径,我就能以编程方式执行此操作。我能说像CopyFileWithCleverDupNamingScheme这样的东西。我本不想写自己的重复命名方案。任何这样的api都需要显然返回新名称 TIA

2 个答案:

答案 0 :(得分:3)

您可以将IFileOperation::CopyItemSetOperationFlagsFOF_RENAMEONCOLLISION一起使用。

答案 1 :(得分:1)

使用WinAPI中的CopyFile功能。它是自我解释的:)

BOOL WINAPI CopyFile(
  _In_  LPCTSTR lpExistingFileName,
  _In_  LPCTSTR lpNewFileName,
  _In_  BOOL bFailIfExists
);

您可以将.new附加到旧文件名吗?

你必须检查这些文件是否已经存在,但不是那么难,只要检查你想写的文件是否已经存在,如果是,添加一些数字并继续增加,直到文件名为foud,这是没用过。

为此,您可以将FindFirstFileFindNextFile

结合使用