我有这个功能:
void aggiornadatabase(void) {
FILE* fp;
int c=0;
char str[30];
int m;
sprintf(str, "%s.csv", utenti[posizioneuser].id);
printf("%s\n", str);
fp = fopen(str, "w");
if (fp == NULL)
printf("Database error\n");
else
m = remove(str);
if (m == 0)
printf("Success\n");
else
printf("Unable to delete the File\n");
fclose(fp);
}
执行此函数时,它会删除所选 .csv 文件中的所有内容,但不会删除文件本身(实际上会打印“无法删除文件”)。
为什么会这样?
最佳答案
文件保持打开状态,删除打开的文件是实现定义的,因此删除可能成功也可能不成功。您最好在 尝试删除
文件之前关闭该文件。
关于c - C中函数 "remove()"不删除选中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44291574/