Создать файл с именем COM1
27-01-2008 05:23
к комментариям - к полной версии
- понравилось!
Как-то однажды под Windows NT, на разделе NTFS, мой приятель создал файл с именем com1. После этого он забыл, как создал этот файл.
Что мы только с ним потом ни пробовали, чтобы его удалить! Ни explorer, ни команда del, ни Volkov Commander, ни FAR - никто не мог и не хотел удалять этот файл. Программы исправления дисков ChkDsk и Нортон Диск Доктор не обнаруживали никаких проблем и поэтому ничего не исправляли. Мы попытались с помощью DiskEdit найти в структурах файловой системы имя этого файла, чтобы "вручную" его переименовать, но тоже обломались - ничего не нашли. Мы ведь тогда не знали, что имена файлов в NTFS хранятся в двухбайтной кодировке Unicode - и искали в однобайтной ASCII. Приятель тогда даже предположил (слухи ходили), что имена файлов в каталогах NTFS хранятся в виде двоичного дерева - чтобы ускорять поиск. Поэтому в "голом виде" их на диске, дескать, и не найдешь.
Плохо было дело. Но однажды все-таки я нашел способ удалить этот файл. Можете ли вы себе представить, какое это было облегчение! :)
Некоторые скажут, что я в "диспетчере устройств" переназначил номер последовательному порту, освободив имя COM1. Нет, неправильно. Во-первых, в Windows NT еще не было "диспетчера устройств", в котором можно было бы переназначить имя последовательного порта. Во-вторых, описываемый способ работает с любыми "запрещенными" именами файлов, даже такими, которые принципиально нельзя переназначить, вроде "nul", "aux", "prn".
Итак, внимание, ответ :)
Чтобы создать, переименовать или удалить файл с запрещенным именем, нужно указать его полное имя с префиксом:
\\.\C:\Myfolder\COM1
Попробуйте - будет весело! Можно даже пошутить с другом - создать ему такой файл где-нибудь в глубоком подкаталоге, который он вскоре намеревается удалить :)
Что любопытно - новые версии FAR Manager удаляют такие файлы без лишних вопросов. Молодцы разработчики - предусмотрели!
вверх^
к полной версии
понравилось!
в evernote