![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
-=CHE@TER=- |
![]()
Сообщение
#181
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,373 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 320 раз(а) ![]() |
Недавно я обновил свою функцию basename() которую использовал в программах для получения имени файла из полного пути. Обновил, добавив туда помимо проверки на символы "\" и "/", также на символ ":".
По идее, не совсем правильно искать этот символ по всей строке, ну да ладно. Кто-нибудь спросит "а что, собственно, случилось?" на что я поведаю такую историю. Давным-давно, когда DOS и прочие операционные системы только появились, не было каталогов (они же папки, они же директории) и все файлы были навалены в корень диска. Вернее, даже, дисковода, потому что жёстких дисков тогда тоже не было - было два дисковода A: и B:, где в первом, как правило, держали дискету с программой, а во втором дискету с файлами этой программой созданными. Поэтому, чтобы обратиться к файлу на другом дисководе, писали так (команда type выводит файл на экран): type B:TEXTFILE.TXT Т.е. указывали диск, затем двоеточие, и только потом имя файла. Шло время и в DOS появились те самые каталоги-папки-директории, где разделитель был символ "\". Так что путь теперь записывался так: type B:\TEXTFILE.TXT Однако, в целях обратной совместимости, запись с указанием файла в корне диска без последующего символа "\" так и осталась. Даже после того как вышел Windows и много ещё чего стряслось. Поэтому даже сегодня можно написать: type B:TEMP\TEXTFILE.TXT И оно будет работать на Windows XP. А вот на Windows 7 использование такого способа уже не работает. Подозреваю, что начиная с Vista убрали обратную совместимость. Добавлю, что в файловых системах NTFS двоеточие после имени файла используется для указания имени потока файла: C:\Temp\TEXTFILE.TXT:stream_name Спасибо сказали:
|
![]() ![]() |
Упрощённая версия | Сейчас: 9th May 2025 - 12:39 |