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

时间:2013-12-03 10:31:14

标签: c++ visual-c++

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

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

我应该如何移动文件以便覆盖目标文件夹中的文件。请指导我

3 个答案:

答案 0 :(得分:4)

MoveFileEx( src, dst, MOVEFILE_REPLACE_EXISTING );

答案 1 :(得分:2)

如果您想坚持使用c api,那么如果重命名将执行副本,您可以使用remove功能删除该文件:

使用您的代码:

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

答案 2 :(得分:-1)

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" );