Тотальная неудачница и убийца жёстких дисков.
#post-id: 6818-01-36
#original-date: 27.03.2019 Wed
#original-time: 1:36 AM
#original-day:  6818
#original-host: WinXP Home SP3 (Build 2600)

Важно помнить, что имя файла, начинающееся на точку и не содержащее расширения («.toprc», например), Windows считает одним расширением без имени. Тоесть к имени «.txt» она прилепит иконку текстового файла и откроет в Блокноте.

Комментарии
20.05.2019 в 15:18

подозрительная личность
Ну и норм. Что не так?
21.05.2019 в 07:16

Тотальная неудачница и убийца жёстких дисков.
Логика подсказывает, что «.txt» – это таки имя файла без расширения, что может выйти боком, если программа использует системные функции для работы с именами файлов, например, когда нужно заменить расширение при формировании выходного файла.
21.05.2019 в 08:21

подозрительная личность
А моя логика подсказывает что если есть точка, всё что справа – расширение, которое есть _часть_ имени файла. Системные функции юникса ведут себя иначе?
22.05.2019 в 11:34

Тотальная неудачница и убийца жёстких дисков.
Трудно сказать, как они себя ведут, ибо в консоли это не сильно видно, а в DE иконки рисуются не только на основе имени файла. Но там точка в начале имени файла означает, что файл скрыт.
22.05.2019 в 11:43

подозрительная личность
Вот что про это думает ruby:
irb(main):003:0> File.extname 'some.file'
=> ".file"
irb(main):004:0> File.extname '.txt'
=> ""

22.05.2019 в 11:46

Тотальная неудачница и убийца жёстких дисков.
Ну вот.

Если это под виндой, то испытываю двоякое чувство. С одной стороны, всё, как я и говорю. С другой – велосипедисты, не используют ShlWapi! =_=
22.05.2019 в 11:50

подозрительная личность
Ну, это всё-таки не системная библиотека и работает во всех ОС одинаково.

А в юниксе вроде бы не принято глядеть на расширения. Есть же чудесная программа file для этого)
22.05.2019 в 11:50

подозрительная личность
% file www.tar
www.tar: POSIX tar archive

22.05.2019 в 12:10

Тотальная неудачница и убийца жёстких дисков.
Мой пост был о том, что могут возникнуть факапы такого характера. Допустим, у тебя есть программа, которая конвертирует текстовые файлы в HTML файлы. У неё есть возможность не дописывать «.html» к расширению, а заменять расширение. Тоесть, был файл «byaka.ini», стал «byaka.html». И эта программа использует системные функции для работы с именами файлов. И вот, однажды этой программе прилетает файл «.torrc»...
22.05.2019 в 12:11

Тотальная неудачница и убийца жёстких дисков.
Случаи могут быть более весёлыми, если прилетает сразу пачка таких файлов, или если программа должна не заменять расширение, а отбрасывать его.