用于在C中重命名文件的Win32 API
如果源目录和目标目录,MoveFile实际上会将源文件的副本复制到目标文件中,这意味着我最终会看到两个文件。
这是重命名的最佳方式吗?
MoveFile
function确实是你想要的。 从文档:
MoveFile函数将在同一目录或目录中移动(重命名)文件或目录(包括其子项)。
如果源位置和目标位置都在同一卷上,则执行primefaces重命名操作。 如果它们位于不同的卷上,则会执行复制/删除操作(这是您可以做的最好的操作)。
尝试
#include int Result = rename( oldname , newname ); if (Result) // "Error occurred." ); else // "File was successfully renamed!";
您可能希望尝试使用MoveFileEx()
API而不指定MOVEFILE_COPY_ALLOWED
以查看是否提供了您正在寻找的行为。
你的代码是什么样的? 我有这个:
if(MoveFile(_T("c:\\hold\\source"),_T("c:\\hold\\dest"))) { printf("succeeded\n"); }else { printf("Error %d\n",GetLastError()); }
并且它不会留下来源。