Windows и Con
В Windows нельзя создать файл или папку под названием “Con”
Проверено – нельзя.
Вариант почему – у Билла Гейтса было в детстве такое прозвище. С английского Con – подстава, словарь слэнга Urban Dictionary приводит множество других вариантов, но я не смог подобрать чего-либо вразумительного.
UPD: (все проще оказалось)
С DOS’овских времен остался пережиток прошлого – запрет на имена папок PRN, AUX, NUL, COM1, COM2 и CON. Таким образом когда-то можно были обратиться непосредственно к устройству.
Спасибо pmaster‘у

Проспамлюсь =)
http://blog.pmaster.net/post.php?id=45
http://blog.pmaster.net/post.php?id=46
Вот оказывается в чем затык
Нет нет и нет
Дело не в вещах аля COM1, COM2 …
Если попытаться содать такие папки то пишется что папка уже существует
А на CON выдает что кривое имя папки
#include
#include
int _tmain(int argc, _TCHAR* argv[])
{
_wmkdir ( L”\\\\?\\D:\\con” ); // Создать папку con (также, как и aux, nul, prn и т.д.)
_wrmdir( L”\\\\?\\D:\\con” ); // Удалить папку con
getch ( );
return 0;
}
Давно-давно, во времена DOS’а, операционная система предоставляла прямой доступ к устройствам по механизму доступа к файлам. Для этого надо было гарантировать уникальность некоторых имен файлов, поэтому некоторые имена файлов были зарезервированы – файлы с зарезервированными именам нельзя было создать, а запись в подобные файлы интерпретирвоалась как запись в устройство: например команда COPY TEST.TXT LPT1 копировала файл TEST.TXT в порт LPT1 и если у вас к этому порту присоединен принтер, то файл, соответственно, выдавался н печать. Подозреваю, что в Windows этот механизм плавно перетекал из версии в версию для обеспечения какой-то обратной совместимости, но сейчас механизм этот (как мне кажется) не работает и уж точно не востребован.
Навскидку, могу расширить список: CON, консоль, LPT(N), порты принтера, N є [0,10), COM(N), модемные порты, N є [0,10), PRN (принтер), NUL (пустое устройство), AUX (асинхронный интерфейс).
По сути своей, источник этого явления такой же, как и невозможность использования двоеточия и обратного слэша в имени файлов.
Кстати, еще более ярко ассоциации работы с устройством как с файлом, выражены в *NIX системах.
Любую из перечисленныйх можно создать, просто до указания диска надо написать \\?\, например, если надо создать папку на диске D то токда в командной строке md \\?\D:\con вот и все также в тотале только без md ))))
\\?\D:\con у мненя пишет – указанного пути не существует
а еще если в командере набрать поиск con.* – он находит файл
если создать пустую папку и поискать в ней con.* – тоже находит…
все равно не понятно при чем ту windows XP и DOS? Друге типа PRN, AUX, NUL, COM1, COM2 – создаются! Правда в каждой папке при поиске con.* – файл находит, или пишет что находит, только его не видно.
Это че-то зарезервированное и создается по умолчанию?
alex » это старые системные команды, которые обозначали разные действия типа печати, имена портов
alex >> \\?\D:\con у тебя пишет – указанного пути не существует?
попробуй перед \\?\D:\con дабавить MD
создал \\?\D:\con
теперь не могу удалить
>>Denis
>>создал \\?\D:\con
>>теперь не могу удалить
В таких случаях помогает программа Unlocker(ccollomb.free.fr/unlocker/).
>>создал \\?\D:\con
>>теперь не могу удалить
rd \\?\d:\con
rmdir \\.\D:\con
Ну вы лохи…
)) Журнал Хакер читать надо!!!!!! все верно, это все далекий DOS… читайте, там навалом фичей разных
хД может это и бред, но есть версия, что реально con – детская кличка Билла Гейтса и переводится она “ботаник”)))))
а я могу созадть..)
Тупо вместо “с” всатвьте русскую “с” или также с “о”, и если Вам так нужен этот файл он будет!
На попытку впрямую создать любую из этих папок в любом месте пишет “Непраильное имя устройства”. Так что cvs неправ.
Надо будет кому-нибудь напакостить, чтобы потом мучался удалить не мог.)
Слово “con” означает – ботаник. А Билл Гейтс ненавидил это свое прозвище. Поэтому он таким способом искоренял это слово:)
http://s61.radikal.ru/i171/1007/dd/4542643c0c3f.jpg
здесь нет русской “с” если что
:Р
а рассказать рецепт?