【问题标题】:Rename Function?重命名函数?
【发布时间】:2016-02-06 20:31:20
【问题描述】:

我尝试使用此代码将文件移动到另一个地方。

#include <stdio.h>

    int main ()
    {
      int result;
      char oldname[] ="C:\\Users\Mohammed Mehdi\Documents\Test.txt";
      char newname[] ="C:\\Users\Mohammed Mehdi\Documents\Test";
      result= rename(oldname, newname);
      if ( result == 0 )
        puts ( "File successfully renamed" );
      else
        perror( "Error renaming file" );
      return 0;
    }

问题是当我真正检查我所有的计算机文件时,什么都没有发生。我检查了返回码,它返回 0,所以应该没问题。我也没有错误。

我看过这个问题,但我的代码在运行时没有错误。 重命名功能不起作用,Visual Studio 2013 RC

【问题讨论】:

  • 重命名调用是否有任何返回值?
  • 不,它只是从程序返回 0
  • 我认为 rename 不会像您期望的那样工作。试试 MoveFileEx
  • 好的,谢谢,我试试看
  • @MohammedMehdi:请不要rename 是标准的、简单的,并且可以按照您期望的方式工作! MoveFileEx 会将您直接绑定到设计不佳的 Windows API!请向我们提供更多详细信息,因为我们缺乏足够的信息来回答您的问题。

标签: c visual-studio file rename


【解决方案1】:

每个反斜杠都应该被另一个反斜杠转义:

char oldname[] ="C:\\Users\\Mohammed Mehdi\\Documents\\Test.txt";
char newname[] ="C:\\Users\\Mohammed Mehdi\\Documents\\Test";

尝试添加

puts(oldname);
puts(newname);

在进行该更改之前和之后查看路径的实际情况。

您还应该收到来自 Visual Studio 的警告:

warning C4129: 'M' : unrecognized character escape sequence

【讨论】:

  • 谢谢,下次一定要记住。
猜你喜欢
  • 2017-04-01
  • 2014-10-09
  • 2017-12-26
  • 2017-05-04
  • 1970-01-01
  • 2011-07-08
  • 2021-11-13
  • 2018-08-29
  • 1970-01-01
相关资源
最近更新 更多