文件删除和重命名错误

时间:2011-12-20 11:58:54

标签: c file-io

我正在学习C而我正在尝试重命名和删除文件。这是我的代码:

    fclose(satis);
    if(!remove("satis.txt"))
        printf("file deleting error\n");
    fclose(gecicisatis);        
    if(!rename("gecicisatis.txt", "satis.txt"))
        printf("file rename error\n");

这是我的.cpp文件的标题:

#include<stdio.h>
#include<locale.h>
#include<string.h>
#include<windows.h>
#include<conio.h>

调试时没有任何错误。但它的输出是:

file deleting error
file rename error

如果您需要,这是我的全部代码:http://pastebin.com/kNY0y2xz(第157至162行)

这是我们的功课,所以我必须使用txt文件。我必须解决为什么文件删除和删除返回错误。你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

如果文件被删除或重命名成功,则返回零值。


您必须将支票更改为:

if( remove("satis.txt") != 0 )
    printf("File deleting error\n");

if( rename("gecicisatis.txt", "satis.txt") != 0 )
    printf("File rename error\n");

答案 1 :(得分:0)

remove成功返回0。所以你需要在if中扭转你的状况。此外,每当遇到错误情况时,最好调用函数perror,它将打印错误原因:

if(remove("satis.txt"))
   perror("File deletion failed\n");

函数rename也是如此。

由于您只提供文件名而不提供路径名,因此假定该文件存在于启动可执行文件的目录中(假设您没有更改进程的pwd)。如果不是这种情况,则必须传递路径名,该路径名可以是相对路径名也可以是绝对路径。