这个小代码部分有问题。它不会删除名为 adatok.txt
的文件。在这个程序中,我在一个文件中存储了很多信息,这些信息以DIAK
(我的结构)的形式存储,所有这些信息都有一个数字(diak.sorszam
)。当我想删除我的一个信息时,我输入存储在 torol
中的信息编号,之后我将我的有用信息存储在名为 sadatok.txt
的文件中> 关闭这两个文件后,我想删除 adatok.txt
,并将 sadatok.txt
重命名为 adatok.txt
,但由于某些原因屏幕上出现SucsessfullError deleting file: Permission denied...
...
system("cls");
int torol,stat=0;
printf("\n\n\tDeleting number:");
scanf("%d",&torol);
FILE *fp, *sfp;
fp = fopen("adatok.txt","rb");
sfp = fopen("sadatok.txt","ab");
DIAK diak;
while(fread(&diak,sizeof(DIAK),1,fp)!=0){
if(diak.sorszam==torol){
stat=1;
}else{
fwrite(&diak,sizeof(DIAK),1,sfp);
}
}
fclose(sfp);
fclose(fp);
system("cls");
if(stat==1){
printf("\n\n\tSucsessfull");
if(remove("adatok.txt")!=0){
perror("Error deleting file");
}else{
perror("File successfully deleted");
}
rename("sadatok.txt","adatok.txt");
}else{
printf("\n\n\tUnsucsessfull");
if(remove("sadatok.txt")!=0){
perror("Error deleting file");
}else{
perror("File successfully deleted");
}
}
printf("\n\tPress a buton");
getch();
...
最佳答案
可能重复:"Error deleting file: Permission denied" with remove in C++
你应该添加一个 \n
来改善你的输出轨迹:
printf("\n\n\tSucsessfull\n");
然后:
- 尝试将文件的绝对路径给
remove()
- 检查您正在运行的程序的权限
关于c - 删除 ("<filename>");删除文件 : Permission denied 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28472031/