我在Windows 7上运行了一个程序,该程序是在Cygwin下编译并通过" NUL"作为输出文件名。它实际上创建了一个名为" NUL"的文件,而不是抑制输出。在当前目录中。 (显然它预计" / dev / null",甚至在Windows上。)现在我已经坚持了这个" NUL"我无法删除的文件!
我已经尝试过了:
remove()
在C程序中 - 也失败如何摆脱这些NUL文件(我现在有几个),没有安装完整的Cygwin环境并在Cygwin下编译C程序来完成它?
答案 0 :(得分:96)
打开命令提示符并使用这些命令首先重命名然后删除NUL文件:
C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt
使用\\.\
前缀告诉高级文件I / O函数将未解析的文件名传递给设备驱动程序 - 这样您就可以访问其他无效的名称。
阅读this article,了解Windows中的有效文件/路径名称以及各种保留名称。
答案 1 :(得分:6)
如果已安装Windows Git(v2.18),请执行以下操作
Git Bash Here
rm nul.json
,然后按Enter,现在应删除文件。注意:这些屏幕截图显示了文件nul.topo.json
的删除,这是我无法通过简单删除操作删除的另一个文件。
答案 2 :(得分:3)
我有类似的问题。它可能也是由Cygwin引起的(因为我经常使用它),但我已经忘记了文件的确切创建方式。
我也无法删除它。我按照其他一些帖子的建议,尝试启动到安全模式删除文件,虽然这没有做任何事情。来自+ xxbbcc的提示对我来说也不起作用。
但是,我能够使用Cygwin终端删除文件! Cygwin createth和Cygwin毁灭。
答案 3 :(得分:1)
要删除位于此处的nul文件: C:\ UNIX \ cygwin的\ dev的\ NUL
我只是使用(仅在Windows 10上测试过): Del \?\ C:\ unix \ cygwin \ dev \ NUL
答案 4 :(得分:1)
如果您在 Windows 上有 git,只需右键单击包含 nul 文件的文件夹 -> 转到 gitbash 此处 -> 并根据文件类型键入“rm nul”或“rm nul.json”。
答案 5 :(得分:0)
我以稍微不同的方式解决了这个问题。
我认为我会在此处添加此内容,因为它在google结果中很高,而且我对名为NUL的文件夹也有类似的问题。
我尝试了rmdir\\?\C:\My\Path\NUL
和rmdir\\.\C:\My\Path\NUL
但没有取得任何成功,还尝试使用我的SourceTree安装中的bash命令。没有快乐。
最后,我使用cmd中的DIR /X /A
列出了父目录中的短名称。这向我展示了我的NUL文件夹NUL~1
,并确定了问题的关键。
然后在标准命令rmdir /s NUL~1
中使用它,最后解决了问题。
答案 6 :(得分:-2)
尝试编写一个调用Windows API的简短C程序来删除该文件。
http://msdn.microsoft.com/en-us/library/aa363915%28v=vs.85%29.aspx
如果这不起作用,请尝试使用带有FILE_FLAG_DELETE_ON_CLOSE的CreateFile()打开文件句柄,然后关闭句柄。