假设我在目录 D1 中有一个名为 f1.txt 的文件。
如果我将此文件剪切粘贴到资源管理器中,我会得到一个名为 f1-(Copy).txt 的好文件。我认为在早期版本中我会得到 f1(2).txt。
无论如何,关键是我可以通过仅在 Win32 中的文件路径以编程方式执行此操作。我可以说 CopyFileWithCleverDupNamingScheme 之类的东西吗?我不想编写自己的重复命名方案。并且任何这样的 api 显然都需要返回新名称。
TIA
问问题
509 次
2 回答
3
您可以IFileOperation::CopyItem
使用SetOperationFlags
和FOF_RENAMEONCOLLISION
。
于 2013-06-22T11:18:04.610 回答
1
使用 WinAPI 中的CopyFile函数。这是不言自明的:)
BOOL WINAPI CopyFile(
_In_ LPCTSTR lpExistingFileName,
_In_ LPCTSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
您可以将 .new 附加到旧文件名吗?
您将必须检查是否已经存在任何此类文件,但这并不难,只需检查您要写入的文件是否已经存在,如果是,请添加一些数字并不断增加,直到找到未使用的文件名。
为此,您可以将FindFirstFile与FindNextFile结合使用
于 2013-06-22T10:47:00.643 回答