Winapi 如何将文件复制到同一目录(win32)
假设我在目录D1中有一个名为f1.txt的文件。 如果我在资源管理器中剪切粘贴这个文件,我会得到一个名为f1-Copy.txt的好文件。我想在早期版本中,我会得到f12.txt。 不管怎么说,关键是我可以在Win32中仅给定文件路径的情况下以编程方式执行此操作。我可以说像CopyFileWithCleverDupNamingScheme这样的话吗。本质上我不想编写自己的重复命名方案。显然,任何这样的api都需要返回新名称。 TIA使用WinAPI中的函数。这是自我解嘲:Winapi 如何将文件复制到同一目录(win32),winapi,Winapi,假设我在目录D1中有一个名为f1.txt的文件。 如果我在资源管理器中剪切粘贴这个文件,我会得到一个名为f1-Copy.txt的好文件。我想在早期版本中,我会得到f12.txt。 不管怎么说,关键是我可以在Win32中仅给定文件路径的情况下以编程方式执行此操作。我可以说像CopyFileWithCleverDupNamingScheme这样的话吗。本质上我不想编写自己的重复命名方案。显然,任何这样的api都需要返回新名称。 TIA使用WinAPI中的函数。这是自我解嘲: BOOL WINAPI
BOOL WINAPI CopyFile(
_In_ LPCTSTR lpExistingFileName,
_In_ LPCTSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
您可以将.new附加到旧文件名中
你必须检查是否有这样的文件已经存在,但这并不难,只要检查你想写的文件是否已经存在,如果是,添加一些数字并不断增加,直到找到一个不使用的文件名
为此,您可以结合使用WinAPI中的函数。这是自我解嘲:
BOOL WINAPI CopyFile(
_In_ LPCTSTR lpExistingFileName,
_In_ LPCTSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
您可以将.new附加到旧文件名中
你必须检查是否有这样的文件已经存在,但这并不难,只要检查你想写的文件是否已经存在,如果是,添加一些数字并不断增加,直到找到一个不使用的文件名
为此,您可以与一起使用,您可以与SetOperationFlags和FOF_Rename碰撞一起使用。您可以与SetOperationFlags和FOF_Rename碰撞一起使用。查找SHFileOperation和FOF_Rename碰撞标志。查找SHFileOperation和FOF_Rename碰撞标志。这不是OP要求的。复制例程应该选择新文件名本身。我不知道是否有任何内置函数返回正确/智能重命名的文件名,至少我找不到。但是文件复制功能会在发生冲突时自动重命名,嗯,是的,我的答案不对。不是OP要求的。复制例程应该选择新文件名本身。我不知道是否有任何内置函数返回正确/智能重命名的文件名,至少我找不到。但是文件复制功能会在碰撞时自动重命名,好吧,那么是的,我的答案不是正确的。