C++ 如果C+;中的文件夹中存在相同的文件名,则无法将文件移动到其他文件夹+;

C++ 如果C+;中的文件夹中存在相同的文件名,则无法将文件移动到其他文件夹+;,c++,visual-c++,C++,Visual C++,我想将一个文件从其目标文件夹移动到另一个文件夹,我的代码工作正常,但如果目标文件夹中已经存在同名文件,则会出现错误, 我的代码如下 char * src ="c:\\src\\abc.txt"; char * dst = "d:\\dest\\abc.txt"; if ( rename(src,dst ) ) perror( NULL ); 我应该如何移动文件,使其覆盖目标文件夹中的文件。请指导我,我希望它对uuu有用 int result; char oldname[

我想将一个文件从其目标文件夹移动到另一个文件夹,我的代码工作正常,但如果目标文件夹中已经存在同名文件,则会出现错误, 我的代码如下

char * src ="c:\\src\\abc.txt";
char * dst = "d:\\dest\\abc.txt";
if ( rename(src,dst ) )
    perror( NULL );
我应该如何移动文件,使其覆盖目标文件夹中的文件。请指导我,我希望它对uuu有用

    int result;
    char oldname[] ="oldname.txt";
  char newname[] ="newname.txt";
  result= rename( oldname , newname );
  if ( result == 0 )
    puts ( "File successfully renamed" );
  else
    perror( "Error renaming file" );
1) 我希望它对uuu有用

    int result;
    char oldname[] ="oldname.txt";
  char newname[] ="newname.txt";
  result= rename( oldname , newname );
  if ( result == 0 )
    puts ( "File successfully renamed" );
  else
    perror( "Error renaming file" );

如果您想坚持使用c api,那么如果rename将执行复制,则可以使用函数删除该文件:

使用您的代码:

char * src ="c:\\src\\abc.txt";
char * dst = "d:\\dest\\abc.txt";
remove(dst);//remove the file first
if ( rename(src,dst ) )
    perror( NULL );

如果您想坚持使用c api,那么如果rename将执行复制,则可以使用函数删除该文件:

使用您的代码:

char * src ="c:\\src\\abc.txt";
char * dst = "d:\\dest\\abc.txt";
remove(dst);//remove the file first
if ( rename(src,dst ) )
    perror( NULL );

你必须删除目标文件夹,如果它已经存在。它不可能覆盖文件,你可以使用函数使用<代码> WiAPI > /Cult>。使用Qt而不是微软C++及其所有内置的;AngryDuck,但是我在VisualStudio2012中工作,如果它已经存在,需要删除目标文件夹。它不可能覆盖文件,可以使用“<代码> WiAPI > /COD>使用函数。使用Qt而不是微软C++及其所有内置的;AngryDuck但我在Visual Studio 2012中工作我没有重命名文件,我正在移动文件我没有重命名文件,我正在根据文档移动文件:如果lpNewFileName或lpExistingFileName命名目录,则不能使用此值。根据文档:如果lpNewFileName或lpExistingFileName命名目录,则不能使用此值@Barmar:remove如果成功将返回0,无论文件的状态如何。根据无法删除文件夹的文档,请检查此处的文档:我一定是误读了问题中的某些内容,我不确定为什么我一直对目录发表评论。@Barmar:remove如果成功,无论文件的状态如何,都将返回0。根据文档,它不能删除文件夹,检查这里的文档:我一定是误读了问题中的某些内容,我不知道为什么我一直在评论目录。