假设我在目录D1中有一个名为f1.txt的文件
如果我在资源管理器中剪切粘贴此文件,我会得到一个名为f1-(复制).txt的文件。我想在早期版本中我会得到f1(2).txt。
无论如何,只要在Win32中只提供文件路径,我就能以编程方式执行此操作。我能说像CopyFileWithCleverDupNamingScheme这样的东西。我本不想写自己的重复命名方案。任何这样的api都需要显然返回新名称
TIA
答案 0 :(得分:3)
您可以将IFileOperation::CopyItem
与SetOperationFlags
和FOF_RENAMEONCOLLISION
一起使用。
答案 1 :(得分:1)
使用WinAPI中的CopyFile功能。它是自我解释的:)
BOOL WINAPI CopyFile(
_In_ LPCTSTR lpExistingFileName,
_In_ LPCTSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
您可以将.new附加到旧文件名吗?
你必须检查这些文件是否已经存在,但不是那么难,只要检查你想写的文件是否已经存在,如果是,添加一些数字并继续增加,直到文件名为foud,这是没用过。
为此,您可以将FindFirstFile与FindNextFile
结合使用