c - 删除 ("<filename>");删除文件 : Permission denied 时出错

标签 c permission-denied delete-file

这个小代码部分有问题。它不会删除名为 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/

相关文章:

java - 安排每天运行 2 次的任务

c - 如何为函数指针创建 typedef

c - 今天和 20 年前的内存对齐

linux - logrotate 说在旋转日志/重新创建日志文件时权限被拒绝

javascript - IE7 中的 JQuery 权限被拒绝错误

linux - Linux上的bash,删除具有特定文件扩展名的文件

c - 在 C 中屏蔽和提取位

使用用户输入 ('+'/'-' ) 进行数学运算的 C 控制台程序不起作用

android - 在 onRequestPermissionsResult 中,某些设备上的 grantResults 在用户拒绝权限时返回空

image - 删除上传的图像