История изменений
Исправление peregrine, (текущая версия) :
Ну тут 3 подхода есть.
Первый - в самом файле, EXIF для картинок, теги для аудио, метаинформация о видеофайлах в контейнеах вроде mkv и так далее, вплоть до тегов в xml-ях/html-ях которые иногда могут так быть (например формат электронных книг fb2) а могут быть запакованы в архивы (тот же odt это zip архив с кучей xml-ей внутри где есть и информация о самом файле). Это надёжно и не теряется, например, при копировании в разные ОС.
Можно чисто средствами ФС данные хранить, но они потеряются при копировании (например когда ты на флешку скопируешь у которой нет EA)/передачи по сети, это xattr и Extended Attributes (EA) в случае ntfs и оффтопика. Это второй вариант.
Есть третий вариант, это хранить данные отдельно от файла, но не полагаясь на не надёжные средства ФС/ОС. Тут опять есть 2 подхода. Первый - БД в которой хранятся данные о файле. Так делают когда у тебя передача не юзером, а скажем через какие-то автоматизированные программы и ты вместе с файлом передаёшь ещё и метаданные, например при передаче файла с сервера в клиентское приложение, которое тоже работает с какой-то БД, обычно Sqlite. На сервере же может крутиться и что-то более грозное, вроде Oracle или PostgreSQL. Вторая вариация этого же варианта больше заточена под юзеров, чем под софт. Ты хранишь рядом с файлом ещё файл с метаинформацией и таким же названием но другим расширением (обычно это json или xml), а юзер при передаче передаёт их оба. Зачастую такие файлы специально кладут в архив чтоб юзер их не терял.
Исходная версия peregrine, :
Ну тут 3 подхода есть.
Первый - в самом файле, EXIF для картинок, теги для аудио, метаинформация о видеофайлах в контейнеах вроде mkv и так далее, вплоть до тегов в xml-ях/html-ях которые иногда могут так быть (например формат электронных книг fb2) а могут быть запакованы в архивы (тот же odt это zip архив с кучей xml-ей внутри где есть и информация о самом файле). Это надёжно и не теряется, например, при копировании в разные ОС.
Можно чисто средствами ФС данные хранить, но они потеряются при копировании/передачи по сети, это xattr и Extended Attributes (EA) в случае ntfs и оффтопика. Это второй вариант.
Есть третий вариант, это хранить данные отдельно от файла, но не полагаясь на не надёжные средства ФС/ОС. Тут опять есть 2 подхода. Первый - БД в которой хранятся данные о файле. Так делают когда у тебя передача не юзером, а скажем через какие-то автоматизированные программы и ты вместе с файлом передаёшь ещё и метаданные, например при передаче файла с сервера в клиентское приложение, которое тоже работает с какой-то БД, обычно Sqlite. На сервере же может крутиться и что-то более грозное, вроде Oracle или PostgreSQL. Вторая вариация этого же варианта больше заточена под юзеров, чем под софт. Ты хранишь рядом с файлом ещё файл с метаинформацией и таким же названием но другим расширением (обычно это json или xml), а юзер при передаче передаёт их оба. Зачастую такие файлы специально кладут в архив чтоб юзер их не терял.