В разных источниках по информатике и вычислительной техники определения термина «файл» так же, как и термина «операционная система», могут варьироваться. Наиболее распространенными являются формулировки, что «файл - это наименьший именованный массив информации» или «файл - основная единица организации информации на носителе». В различных файловых системах файлы могут описываться различными, вообще говоря, наборами параметров и характеристик.
Основным атрибутом файла является его имя. Имя файла - это символьная строка, длина которой зависит от конкретной файловой системы. Так, в файловой системе FAT (File Allocation Table), используемой в MS DOS, длина имени файла не может превышать 11 символов, 3 из которых предназначены для расширения. В ОС UNIX System V под имя файла отводится 14 символов, а в файловой системе NTFS (New Technology File System) для Windows NT - 255 символов. От файловой системы также зависит, какие символы могут использоваться в имени файла.
Поскольку существуют различные файловые системы, перед их разработчиками встает проблема обеспечения совместимости между ними. Например, система, позволяющая присваивать файлам длинные имена, должна уметь корректно преобразовывать их в короткие. Но, к сожалению, пока не удалось решить проблему использования единственного имени файла в различных файловых системах. Это связано, в первую очередь, с различием наборов разрешенных символов в различных системах.
В некоторых системах, например UNIX, одному файлу может быть сопоставлено несколько имен. Это особенно удобно для многопользовательских систем. В таком случае необходимо адресовать файл идентификатором, который будет связывать файл и его имена. В системе UNIX таким идентификатором служит номер индексного дескриптора.
Другие атрибуты файла, которые могут использоваться файловой системой, перечислены ниже:
· текущий размер файла;
· максимальный размер файла;
· длина записи;
· времена создания, последнего доступа и последнего изменения;
· владелец файла;
· создатель файла;
· информация о доступе к файлу;
· пароль для доступа к файлу;
· признак «только для чтения»;
· признак «скрытый файл»;
· признак «системный файл»;
· признак «архивный файл»;
· признак «двоичный/символьный»;
· признак «временный»;
· признак блокировки.
Для логической организации файлов используются каталоги. Каталог содержит файлы, объединенные по какому-либо признаку - их создатель, их тип, тема и т.д. Каталог - это файл, который содержит информацию о входящих в него файлах. Каталогов на носителе может быть много, и они могут иметь различные степени вложенности. Все каталоги, находящиеся на носителе, образуют иерархическую структуру.
Структура каталогов в зависимости от файловой системы может быть древовидной, когда один файл может входить только в один каталог, и сетевой, когда один файл может входить в различные каталоги. Пример системы с древовидной структурой каталогов - система FAT. Сетевая структура, более подходящая для многопользовательских систем, реализована в UNIX.
В так называемых DOS-совместимых (впрочем, и в некоторых других) системах к файлу обращаются с помощью полного имени, которое состоит:
· из пути (англ. Path) - последовательности имен каталогов, в которых содержится файл, разделенных символом \ (в UNIX для этого используется символ /);
· собственно имени файла (англ. Name);
· расширения (англ. Extension), которое является необязательным элементом и, как правило, информирует о типе данных, хранимых в файле. Расширение отделяется от имени точкой (.)
В качестве примера может быть приведено следующее имя файла:
C:\DIR1\DIR2\OIR3\NAME.EXT
В различных файловых системах существуют ограничения на то, какие символы могут присутствовать в именах файлов.