Подтвердить что ты не робот

Удалите файл с именем "NUL" в Windows

Я запустил программу на Windows 7, которая была скомпилирована под Cygwin и передала "NUL" в качестве имени выходного файла. Вместо подавления вывода он фактически создал файл с именем "NUL" в текущем каталоге. (По-видимому, он ожидает "/dev/null" даже в Windows.) Теперь я застрял с этим "NUL" файлом, который я не могу удалить!

Я уже пробовал:

  • Проводник Windows - ошибка: "Неверная функция MS-DOS" (да, это серьезно, что она говорит!)
  • Командная строка с использованием "del NUL" - ошибка: "Имя файла, имя каталога или том синтаксис ярлыков неверен. "
  • Удаление всего каталога - то же самое дело, что и удаление файла
  • remove() в программе C - также не работает

Как я могу избавиться от этих NUL файлов (у меня их уже несколько), за исключением установки полной среды Cygwin и компиляции C-программы под Cygwin?

4b9b3361

Ответ 1

Откройте командную строку и используйте эти команды для первого переименования, а затем удалите файл NUL:

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

Использование префикса \\.\ сообщает, что функции ввода/вывода файлов высокого уровня передают имя файла, не отсканированное в драйвере устройства, - таким образом вы можете получить доступ к другим недопустимым именам.

Прочитайте эту статью о действительных именах файлов/путей в Windows и различных зарезервированных именах.

Ответ 2

У меня была аналогичная проблема. Вероятно, это вызвало и Cygwin (так как я использую это регулярно), но с тех пор я забыл, как именно был создан файл.

Мне также не удалось удалить его. Я следил за советами некоторых других сообщений и пытался загрузиться в безопасный режим, чтобы удалить файл, хотя это ничего не делало. Совет от + xxbbcc тоже не работал у меня.

Однако я смог удалить файл с помощью терминала Cygwin! Создатели Кигвина и Кигвин разрушаются.

Ответ 3

Я решил это несколько иначе.

Я думал, что добавлю это здесь, потому что он высок в результатах Google, и у меня была аналогичная проблема для папки с именем NUL.

Я пробовал rmdir\\?\C:\My\Path\NUL и rmdir\\.\C:\My\Path\NUL без каких-либо успехов, а также попробовал несколько команд с помощью bash из моей установки SourceTree. Нет радости.

В конце я использовал DIR /X /A из cmd для отображения коротких имен в родительском каталоге. Это показало мне NUL~1 для моей папки NUL и определило суть проблемы.

Затем это использовалось в стандартной команде rmdir /s NUL~1 и, наконец, разрешило проблему.

Ответ 4

Запустите npm удалите данные в командной строке. Он удалит nil.json и nil.topo.jdon. Эти два файла вызывают проблемы.

Ответ 5

Попробуйте написать небольшую программу на языке C, которая вызывает Windows API для удаления этого файла.

http://msdn.microsoft.com/en-us/library/aa363915%28v=vs.85%29.aspx

Если это не сработает, попробуйте открыть дескриптор файла с помощью CreateFile() с помощью FILE_FLAG_DELETE_ON_CLOSE, а затем закройте дескриптор.