【发布时间】:2017-10-03 01:20:27
【问题描述】:
我有一个原始文件students.txt。我想用文件studentsmodified.txt 覆盖。我尝试使用重命名,但似乎重命名不能覆盖文件:
rename("studentsmodified.txt","students.txt");
我该怎么做?
【问题讨论】:
-
检查
errno以了解失败的原因 - 可能是权限问题,或文件打开。 -
文件存在提示错误
-
它应该适用于任何表现良好的操作系统,例如Linux。您是否可能尝试在非 POSIX 操作系统上执行此操作,例如Windows ?
-
好的 - 我现在已将您的问题标记为
windows- 您可能应该为将来的任何问题执行此操作,因为 Windows 与标准操作系统有许多不兼容之处。请参阅MSDN entry for rename(),尤其是说“新名称不能是现有文件或目录的名称”的部分。在调用rename()之前,您可能必须删除或重命名要替换的文件。 -
我不知道 - 如果可以避免的话,我不会使用 Windows。也许您可以阅读一下 MSDN 文档,或者只是使用我上面提到的解决方法。