- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
> echo 1 >1.cp
> echo 1 >1.cpp
> echo 1 >1.cppp
> dir /b *.cp
1.cp
> dir /b *.cpp
1.cpp
1.cppp
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+129
> echo 1 >1.cp
> echo 1 >1.cpp
> echo 1 >1.cppp
> dir /b *.cp
1.cp
> dir /b *.cpp
1.cpp
1.cppp
Баг в FindFirstFile/FindNextFile, показан на виндовом dir для простоты демонстрации. Призрак DOS'а жив даже в семерке...
bormand 18.01.2013 12:58 # +1
roman-kashitsyn 18.01.2013 13:06 # +1
bormand 18.01.2013 13:19 # −1
inkanus-gray 18.01.2013 13:48 # +2
...
18.01.2013 14:45 4 1.cpp
18.01.2013 14:45 4 137E2~1.CPP 1.cppp
...
> dir /b 13*.*
1.cppp
Генерация коротких имён включена по умолчанию.
P.S. Вывод последнего dir'а рвёт мозг. Но такая схема работать будет во всех случаях, когда короткое имя не совпадает с длинным, а не только когда в расширении больше трёх символов.
bormand 18.01.2013 13:52 # 0
inkanus-gray 18.01.2013 13:55 # 0
bormand 18.01.2013 14:05 # +1
P.S. Не ну есть конечно вариант - отключить параметр в реестре, отвечающий за генерацию коротких имен, но это совсем уж радикальный вариант. Один хрен багует, что с *.cpp, что с *.CPP. ВиндаГовно.
inkanus-gray 18.01.2013 14:09 # +1
FindExInfoBasic
The FindFirstFileEx function does not query the short file name, improving overall enumeration speed.
inkanus-gray 18.01.2013 14:16 # +1
guest 18.01.2013 14:34 # −1
dir *~* > wtf.txt && start wtf.txt
bormand 18.01.2013 14:58 # +1
P.S. Нахуя зачем нужен этот код? Найти файлы не проходящие по 8.3, и следовательно отображаемые в досе не так (а также до кучи все файлы с тильдами в духе ~1.txt и 1.txt~)? Или есть еще какой-то скрытый смысл, недоступный простым смертным?
guest 18.01.2013 15:25 # −1
bormand 18.01.2013 15:30 # +2
В виндосервере 2003+ по дефолту вообще отключена поддержка говна мамонта досовских имен.
Не лучше уж отдельный коммандком для тех кому еще нужно работать с досовскими прогами, чем костыли во всех виндовых прогах пользующихся FindFirstFile, включая все шарпейские проги, использующие DirectoryInfo.GetFile.
guest 18.01.2013 15:35 # −2
каптча 8383
bormand 18.01.2013 15:37 # +4
У клиентов? Лолшто. Так и представляю себе звонок в техподдержку - "Алло, у меня вместо *.doc ищутся *.docx, что мне сделать?" - "Отключите поддержку коротких имен для тома" - "Да пошли вы нахуй, у меня фокспро до сих пор юзается".
P.S. Какие вы там проблемы кстати заметили с gnu make, из-за которых вы так защищаете 8.3 имена?
guest 18.01.2013 15:42 # −2
bormand 18.01.2013 15:45 # +2
И причем тут дособлядские 8.3?
Если надо найти файлы с пробелами - запускаете
guest 18.01.2013 16:07 # 0
inkanus-gray 18.01.2013 16:10 # 0
ls "C:\Program Files"
А что происходит при установке в %ProgramFiles%?
bormand 18.01.2013 16:17 # +1
Не работает. У make $^ сломаются, и еще много что сломается. Она не умеет нормально экранировать пробелы при генерации команд.
bormand 18.01.2013 16:18 # +2
Я так похож на идиота, который поставит мингв в путь с пробелами забив на все предупреждения?
bormand 18.01.2013 16:15 # +2
Так причем же тут 8.3 имена, guest?
Чем же твой dir *~* (требующий поддержки багофичи с поиском 8.3 имен) полезней dir "* *" в плане работы с gnu make, guest?
Не толстый ли ты тролль, guest?
inkanus-gray 18.01.2013 15:56 # +2
bormand 18.01.2013 14:56 # +1
inkanus-gray 18.01.2013 15:20 # +2
В Микрософте всерьёз думают, что заполнение лишнего поля даст заметный прирост тормозов по сравнению с операциями над файловой системой?
bormand 18.01.2013 15:16 # +1
guest 18.01.2013 14:10 # −1
guest 18.01.2013 14:32 # +1
guest 18.01.2013 14:46 # +2
http://technet.microsoft.com/en-us/library/cc754351.aspx
guest 18.01.2013 15:54 # +6
an0nym 18.01.2013 16:30 # −7
Lure Of Chaos 20.01.2013 16:19 # +1
eth0 20.01.2013 19:39 # +2
inkanus-gray 20.01.2013 20:06 # +3
TarasB 20.01.2013 19:45 # +1
inkanus-gray 20.01.2013 20:02 # +1
В Windows NT короткое имя может выглядеть, как адский трэш (перед тильдой будут шестнадцатеричные цифры), а кроме того, оно ещё и опционально.
angrybird 08.03.2013 13:38 # −1
Скриншот http://s002.radikal.ru/i198/1303/41/672be625b131.png
bfGjKRC 25.08.2021 01:18 # 0