Как стать автором
Обновить

Комментарии 21

Расширение даёт подсказку операционной системе и программам, о том какой тип данных он содержит и как это всё структурировано.

Вот именно о том, что это утверждение может быть ложным, приходится регулярно напоминать...

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

Ну и ещё можно отметить, что расширения бывают многоуровневыми (хотя более 3 уровней я лично не видел). tar.gz или fb2.zip, например. При этом расширение после последней точки подсказывает возможный конечный формат файла, предыдущее расширение - что мы, вероятно, получим, расшифровав последний формат, и т.д.

Расширение (как отдельное поле) было актуально во времена MS DOS. В 21 веке это просто несколько символов в конце имени.

Тем не менее оно ещё очень интенсивно используется. Достаточно того, что интерфейсы ОС умеют его скрывать, а также передавать файл связанной с расширением программе на обработку. А так - да, Вы правы. Я даже специально использую термины "имя файла" и "полное имя файла" для случаев, когда расширение вырезано и когда оно присутствует, соответственно.

Сокрытие расширения — это худшее UI решение из всех существующих, как и к примеру сокрытие реального расположения или реального имени приложения (android), сколько на этом копий было сломано, после чего стало за правилом — везде выключать эти настройки.

...отделенное последней точкой в имени, это важно, потому что точек может быть много.

Archive.yyyy.mm.dd.tar.gz :)

Неистово плюсую. Из-за вот таких объяснений бухгалтера потом и открывают отчёт.doc который внезапно оказывается скриптом.sh, благо современные ОС зачастую ругаются если файл является не тем что написано у него в имени.

ещё доставило это:

Потому что, по умолчанию, современные ОС их скрывают, но можно поставить галочку в настройках.

Автор, это например какие? я на вскидку вспомнил такое поведение только в windows, linux (по крайней мере те DE и файловые менеджеры которые я знаю), freebsd (с теми же DE и фм) и macos ничего не скрывают по умолчанию..

точно помню еще почтовый клиент какой то скрывал

честности ради, автор и написал - "подсказку", что и означает "вероятно".

НЛО прилетело и опубликовало эту надпись здесь

В цитате совершенно безальтернативно утверждается, что тип данных и структурирование соответствуют расширению. Именно это и есть обязательство. Я лично не готов воспринимать эту фразу как "Расширение даёт подсказку операционной системе и программам, о том какой тип данных он содержит и как это всё структурировано (но может и соврать)".

Считаете иначе? Ваше право.

НЛО прилетело и опубликовало эту надпись здесь

Если речь зашла про Notepad, то он как раз может хранить некие бинарные данные в формате TXT для определения Unicode.

Например, есть вариант "UTF-8 используя BOM". В начало файло добавляется информация в бинарном виде, которая помогает тому же Notepad определить формат.

Так же там есть вариант UTF-16. Там каждый символ будет уже не 8 бит.

Это всё делает формат TXT уже не таким простым как кажется.

Насколько я слышал, первоначально применялось 7 бит, 8-й был для контроля чётности. Поскольку тогда с электронными лампами да дискретными транзисторами каждый лишний бит стоил немало, использовали 7, поскольку 6 всяко мало, а 6,5 сделать сложно. Ну а когда ошибки копирования между регистрами и ячейками оперативной памяти стали редкими, 8-й бит тоже под данные приспособили, благо уже с интегральными микросхемами так экономить память надобность исчезла.

У Вас написано:

"К таблицам с латинскими символами добавились кириллические, которые занимали уже не по 8 бит, а по 16 бит каждый."

На самом деле, это - некоторая неточность. В действительности, ASCII со всеми латинскими буквами определяет только первые 128 символов, а втоорые использовались для разных алфавитов, включая и кириллицу, поэтому обычный текст с кириллицей занимал столько же места, сколько и с латиницей. Другое дело, что стандартов кодировки кириллицы было несколько: KOI-8, популярный под юниксом, кодировка ДОС (DOS-866), кодовая страница 1251 в Windows. Ну и кроме того, иметь в одном тексте и кириллицу и латиницу было можно, а вот, к примеру, грузинский алфавит к ним засунуть было уже некуда.

И вот чтобы разместить сколько угодно языков в одном тексте, а заодно избавиться от этого зоопарка кодировок, и придумали Юникод.

С зоопарком, правда, получилось... как всегда. Вместо зоопарка кодовых страниц теперь зоопарк юникодов, но лингвистам жить стало легче - можно иметь сколько угодно алфавитов в одном файле.

дополненьице небольшое: на коммерческих юниксах еще резвилась ISO8859-5, а вдобавок еще и MacCyrillic на соответствующих железяках была. интересно у каких еще языков был такой бардак?

Спасибо за труд. Но это только вступление или все...?

На эту тему можно написать книгу и не одну, потому что в наше время расширение файла практически НИЧЕГО не говорит о содержимом. Например, ".img".

Но это только вступление или все...?

Это больше похоже на неуклюжую нативную рекламу ПО МойОфис.

Кодировка UTF-8 имеет гораздо более сложную структуру, и она не "двухбайтовая", как могло бы показаться. Просто для подавляющего числа используемых символов его код будет состоять из одного или двух байтов. Но сама кодировка предполагает и большее количество байт на символ/знак.

Вообще, принято условно разделять все файлы на две важные группы: plain text и binary. Первый - условно текстовый формат, на однобайтовой (старой) или многобайтовой (UTF-8 новой) кодировке, может иметь структуры высшего порядка внутри, но базирующиеся на тексте. Любой текст программы, xml, ini и куча других форматов - это plain text. Это важно, потому что позволяет применять общие системы контроля версий к ним и некоторые другие вещи.

Binary - имеет какую-то собственную структуру, как правило, состоящую из некоторого "заголовка" и "тела" с данными. Заголовок, зачастую, имеет часто признак типа файла - сигнатуру, которая также может быть использована при попытке определить его тип. Вот jpg, wav, mp3, exe - это именно binary.

"Это простой аудиоформат, который содержит несжатый. Всё CD диски записаны в формате WAV."

Зарегистрируйтесь на Хабре, чтобы оставить комментарий