Направо към съдържанието

Файлов формат

от Уикипедия, свободната енциклопедия
(пренасочване от Файлови формати)

Файлов формат, или още формат на файл(ове), е определен начин за кодиране на информацията, когато тя се преобразува за съхранение в компютърен файл.

Тази организация на информацията като последователност от битове (нули и единици) позволява компютърните програми да могат да я преобразуват от машинния език в достъпен за човека вид и обратно. За различните видове информация съществуват различни видове файлови формати. Даден тип файл, например документ на текстообработваща програма, обикновено може да бъде записан в няколко различни формата.

Някои файлови формати са създадени за строго определени типове данни: например при изображенията JPEG форматът е разработен, за да съхранява само статични фотографски изображения. Други формати са разработени за съхранение на различни типове данни: GIF (Graphics Interchange Format) форматът поддържа както статични изображения, така и прости анимации, а QuickTime-форматът може да се използва като контейнер за различни типове мултимедия.

Текстов файл е файл, който съдържа текст, кодиран например като ASCII или UTF-8, с малко (ако въобще ги има) контролни знаци. Някои файлови формати като HTML или изходният код на някой програмен език са също текстови файлове, но отговарят на някои по-специални правила, които позволяват да бъдат използвани и за други специфични цели.

Възможно е дадена програма да прочете файл, кодиран по един начин, все едно, че е кодиран по друг. Например може да бъде пуснат един Microsoft Word-документ все едно, че е песен, като се използва програма за слушане на музика, която борави с безхедърни („headerless“) аудио файлове. Но резултатът със сигурност няма да звучи особено мелодично. Причината за това е, че подредба на битовете, която е смислена за един формат, почти винаги е безсмислена в друг формат.

Много файлови формати, включително повечето популярни формати, имат публикувани стандартни спецификации (обикновено с пример за реализацията им), които описват точно как данните трябва да бъдат кодирани и определят дали дадена програма обработва даден компютърен формат коректно. Сред причините не винаги да има точна спецификация на файловите формати е, че някои от разработчиците считат въпроса за спецификацията за търговска тайна и по тази причина не ги огласяват.

Използването на файлови формати, за които няма публично достъпна спецификация, може да струва скъпо. За да се научи как точно работи форматът, се изисква или използването на обратно инженерство от вече образувани файлове, или получаването на спецификация срещу определена сума от разработчиците на формата. Този втори подход е възможен единствено, ако съществува такъв документ и обикновено е съпътстван от подписването на споразумение за конфиденциалност (non-disclosure agreement). И двата подхода изискват значително време, пари или и двете. По тази причина като правило файловите формати с публично достъпни спецификации се поддържат от голям брой програми, докато затворените формати се поддържат само от някои специализирани програми.

За защита на файловите формати се прилага по-често патентното, отколкото авторското право. Макар според американските закони да не се разрешават патенти директно за файлови формати, някои от форматите използват кодиране на информацията с патентовани алгоритми.

Например GIF-форматът изисква прилагането на патентован алгоритъм и макар в началото притежателите на патента да не са го изисквали, по-късно започват да искат пари за използването му. Това довежда до значително намаляване на използването на този формат и е отчасти причина за появяването на алтернативен формат – PNG (Portable Network Graphics). Въпросният патент обаче е изтекъл в САЩ през 2003, а в световен мащаб в средата на 2004. Според европейското право алгоритмите обикновено не се патентоват.[1]

Определяне на типа на файла

[редактиране | редактиране на кода]

Програмите „виждат“ файловете като потоци от данни, следователно е нужен метод, чрез който да се определи форматът на определен файл от файловата система — това е един пример за използване на метаданни. Различните операционни системи по традиция използват различни подходи към този проблем, като всеки подход има своите предимства и недостатъци.

Повечето модерни операционни системи, както и самостоятелните приложения, трябва да могат да използват всеки един от тези подходи, за да обработват различни файлове, или ако не могат да работят пълноценно, поне да четат чужди файлови формати.

Разширения на файловите имена

[редактиране | редактиране на кода]

Един популярен метод, който се използва при някои операционни системи, в това число Mac OS X, CP/M, DOS, VMS, VM/CMS и Windows, е да се определя форматът на файла на базата на частта от неговото име след последната точка. Тази част от файла е известна като разширение (на английски: extension). Например HTML документите се идентифицират с файлови имена, завършващи с .html (или .htm), а GIF изображенията – чрез .gif. В оригинално създадената FAT-файлова система, дължината на файловите имена са ограничени до осем символа за идентификатора (име) и до три символа за разширението, което е известно жаргонно като 8.3 filename. Поради това много формати все още използват разширение от три символа, въпреки че модерните операционни системи и приложения вече нямат такова ограничение. Тъй като няма стандартен списък с разширения, може да се случи няколко различни формата да използват едно и също разширение, което може да обърка операционната система, а впоследствие и потребителите.

Една особеност на този подход е, че системата може лесно да бъде измамена да третира файла като различен формат просто като се преименува: един HTML файл например може лесно да се третира като обикновен текст, като се преименува от filename.html на filename.txt. Въпреки че тази стратегия е удобна за напреднали потребители, за които е лесно да разберат и използват тази информация, тя често е объркваща за по-малко технически ориентирани потребители, които биха могли по невнимание да направят файловете неизползваеми (и дори да ги загубят), като ги преименуват некоректно. Поради това в по-нови операционни системи като Windows 95 и Mac OS X, разширенията на файловете не се показват при извеждането им в списъци. Подразбира се, че по-напредналите потребители винаги могат да видят разширението на даден файл.

Вградени метаданни

[редактиране | редактиране на кода]

Втори начин за идентифициране на файлов формат е като се съхранява информация относно формата в самия файл. Обикновено такава информация се записва във вид на бинарен низ, тагове или прав текст, поставени на точно определени позиции в самия файл. Тъй като е най-лесно те да се поставят в началото на файла, тази област се нарича обикновено файлов хедър (когато е по-голяма) или магическо число (когато е само няколко байта).

  1. Foundation for a Free Information Infrastructure. Europarl 2003-09-24: Amended Software Patent Directive // Архивиран от оригинала на 2007-02-05. Посетен на 7 януари 2007.
  Тази страница частично или изцяло представлява превод на страницата File format в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​