如何删除一个 0 字节的文件,但在 c 程序中从中读取“þa”

如何删除一个 0 字节的文件,但在 c 程序中从中读取“þa”

这个问题与如何删除无敌的0字节文件?因为没有任何答案起作用,而且我无法删除的文件,我“感觉”是不同的。

我按照这个网站删除了一个包含 node_modules 文件夹的文件夹。使用文件资源管理器删除这些文件夹需要很长时间,而且我每次都记不住要运行的确切命令。所以我查了一下。

https://www.ghacks.net/2017/07/18/how-to-delete-large-folders-in-windows-super-fast/#:~:text=Tap%20on%20the%20Windows%2Dkey,F%2FQ%2FS%20*

我使用以下命令或者我模糊的手指和可怕的眼睛处理了我所想的内容:DEL /F/Q/S *.* > NUL

这删除了文件夹中的所有文件,但创建了这个包含 0 字节的 NUL 文件。这说明我搞错了命令,当链接显示> NUL应该禁用控制台输出时,某些内容被传输到了 NUL。

我试过 File Commander,,,del *.没有del *.*显示dir /x任何与文件资源管理器中的删除按钮不同的内容dir,指定文件的所有权限并再次尝试一切。不起作用。

我尝试将文本导入其中,希望如果其中有内容,生活会变得更容易。这并没有将任何文本导入文件:echo "Hello world" > NUL

作为一名程序员,我想我可以更深入地编写一个程序来删除它。不行。没用。

       if(remove("C:/../../NUL") == 0)
          printf("Deleted successfully");
       else
          printf("Unable to delete the file");

我尝试用 C 语言将文本写入文件,但也失败了。然后我尝试从中读取文本,并将缓冲流写入新文件。

       FILE *fp;
       FILE *fp2;
       char buff[255];
       fp = fopen("C:/../../NUL", "r");
       fp2 = fopen("C:/../../cmd.txt", "w");
       fgets(buff, 255, (FILE*)fp);
       fputs(buff, fp2);
       fclose(fp);
       fclose(fp2);

我发现里面有两个字符。þa。不知道“þa”代表什么。当我在 Eclipse 中将字符打印到控制台时,有三个字符,它们是“aw”。第一个字符是一个被阻止的问号。它看起来与 Unicode 替换字符略有不同。所以现在我在这里,留下的将是这些神秘字符的史酷比之谜、创建这些字符的伪造命令以及无法删除的文件。

由于某种原因,字符串中的第一个字符没有保存,所以我从 Eclipse 控制台输出中抓取了一些片段,并且由于某种原因,Chrome 也以不同的方式呈现它,所以我也从那里抓取了一张图片。https://ibb.co/yQSfD8b

--更新--我运行了命令 DEL /f/q/s> NULL。运行带有小写值的标志让我很困惑。

答案1

这个问题已经在 stackoverflow 上得到解答这里

为了防止链接失效,厚颜无耻地复制/粘贴:

打开命令提示符并使用这些命令首先重命名然后删除 NUL 文件:

C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt

使用\\.\前缀告诉高级文件 I/O 函数将未解析的文件名传递给设备驱动程序 - 这样您就可以访问无效的名称。

本文关于 Windows 中的有效文件/路径名以及各种保留名称。

相关内容