Какая максимальная длина имени файла в windows

Давно известен тот факт, что Проводник Windows и большинство Windows-приложений не могут работать с файлами и папками, длина пути к которым превышает 260 символов. И это — лишь программное ограничение на уровне Win32 API, известное также как MAX_PATH, тогда как файловая система NTFS сама по себе допускает до 32767 символов в адресе объекта файловой системы, чем успешно пользовались сторонние приложения, работавшие в обход стандартного API, например, FAR и Total Commander.

Также данное ограничение не касалось работы с файлами при сетевом доступе, что приводило к казусным ситуациям: рядовой пользователь в расшаренной папке может создавать и изменять файлы и папки, администратор через Windows Explorer — получает отказ доступа. Причём данное ограничение имело место не только в Windows 7/8/8.1 и более ранних ОС, но и в новейшей Windows 10.

Для обхода ограничения применялся, в зависимости от ситуации и уровня подготовки сидящего за ПК пользователя, целый ряд различных приёмов: символические ссылки, ручное сокращение количества символов, создание виртуальных дисков и прочее.

И вот, как сообщает ряд тестеров регулярно выпускаемых закрытых сборок Windows 10, компания Microsoft, наконец, снизошла до исправления этого недостатка и выпуска исправления. Точнее — реализации настройки, которую должен будет включить сам пользователь. В шаблонах групповых политик появился соответствующий параметр «Включение длинных адресов NTFS» (Конфигурация компьютера -> Административные шаблоны -> Система -> Файловая система -> NTFS).

Единственное, что огорчает — Редактор групповых политик (gpedit.msc) отсутствует в редакциях Windows 10, отличных от «Профессиональная» и «Корпоративная» (хотя существуют неофициальные и не совсем легальные способы обойти это ограничение). Впрочем, необходимые ключи в реестре наверняка будут найдены. Как подсказывает один из читателей, это параметр LongPathsEnabled (тип DWORD), расположенный в реестре по адресу HKEY_LOCAL_MACHINE\System\CurrentControlSet\Policies.

Telegram-канал @overclockers_news — теперь в новом формате. Подписывайся, чтобы быть в курсе всех новостей!

Слишком длинное имя файла или слишком длинный целевой путь — как исправить?

При копировании, создании, сохранении или перемещении файлов и папок в Windows 11 и Windows 10 на внутреннем HDD или SSD, при копировании данных на внешний диск или флешку, вы можете столкнуться с ошибками вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку», «Указано неправильное или слишком длинное имя файла» и другие, имеющие отношение к слишком длинным именам или путям к файлам и папкам.

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

  • Слишком длинное имя файла или слишком длинный целевой путь
    • Причины ошибки и способы её исправить
    • Как включить поддержку длинных путей в Windows
      • В редакторе реестра
      • В редакторе локальной групповой политики
    • Почему ошибка сохраняется при включенной поддержке длинных путей

Причины ошибки «Слишком длинное имя файла» и «Слишком длинный целевой путь» и способы её исправить

Слишком длинный целевой путь при копировании

Несмотря на то, что файловой системой NTFS длина пути ограничена 32760 символов, в Windows существует ограничение на полный путь в 260 символов, включая путь к папке и имя файла с расширением. Ещё одно ограничение — 255 символов на имя файла или отдельной папки. Схожие ограничения есть для файловых систем FAT32 и ExFAT. Когда полный путь к файлу, с которым вы выполняете действия, превышает указанное число символов, вы можете получить сообщение об ошибках о слишком длинном целевом пути или слишком длинном имени файла.

Отсюда основные способы исправить ошибки, связанные с использованием слишком длинного пути:

  1. Использовать более короткие имена файлов и более простое и «компактное» дерево папок.
  2. Включить поддержку длинных путей — такая опция есть в Windows 10 и Windows 11, далее будет рассмотрен порядок действий. Однако, это решит не все проблемы, о чем мы также поговорим.
  3. Использовать файловые менеджеры, которые могут работать с длинными путями по умолчанию: Total Commander, Files (но для него потребуется включить и поддержку длинных путей в системе) или даже 7-Zip File Manager, который прекрасно с этим справляется.

Как включить поддержку длинных путей в Windows 10 и Windows 11

В зависимости от установленной редакции Windows, можно использовать один из следующих способов включения поддержки длинных путей.

В редакторе реестра

Если на вашем компьютере установлена Windows 11 или Windows 10 Домашняя, используйте редактор реестра для включения опции:

  1. Нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить» или нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter.
  2. В редакторе реестра перейдите к разделу
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
  3. В правой панели редактора реестра дважды нажмите по параметру с именем LongPathsEnabled и присвойте значение 1 вместо 0 для этого параметра.
    Включить поддержку длинных путей в редакторе реестра Windows

  4. Закройте редактор реестра, перезагрузите компьютер.

В редакторе локальной групповой политики

В Windows Pro и Enterprise можно использовать редактор локальной групповой политики:

  1. Нажмите клавиши Win+R на клавиатуре, введите gpedit.msc в диалоговом окне «Выполнить» и нажмите Enter.
  2. Перейдите к разделу Конфигурация компьютера — Административные шаблоны — Система — Файловая система.
  3. Дважды нажмите по параметру «Включить длинные пути Win32».
    Политики файловой системы в gpedit

  4. Установите значение «Включено» для этого параметра, примените настройки.
    Включить поддержку длинных путей в редакторе локальной групповой политики

  5. Закройте редактор локальной групповой политики и перезагрузите компьютер.

Готово, теперь поддержка длинных путей в Windows включена, однако это не означает, что ошибки, с ними связанные, исчезнут.

Почему ошибки длинных путей появляются, несмотря на включенную поддержку длинных путей

Имена файлов слишком длинны для помещения в эту папку

Даже если вы включите поддержку длинных путей к папкам и файлам в Windows 11/10, при действиях с такими файлами в проводнике и некоторых программах вы продолжите получать ошибки вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку» или «Указано неправильное или слишком длинное имя файла», также будут недоступны некоторые действия в папках, имеющих длинный путь.

Причина этого — поддержка длинных путей требуется не только на уровне системы, но и в самой программе, которая работает с этими путями, в качестве примера:

  • Проводник не сможет полноценно работать с длинными путями даже при включенной поддержке.
  • Файловый менеджер Files из магазина приложений будет исправно работать, если включить поддержку длинных путей, и будет сообщать об ошибках при отключенной поддержке.
    Работа с длинными путями в файловом менеджере Files

  • Total Commander или встроенный файловый менеджер 7-Zip работают с длинными путями независимо от того, включена ли их поддержка в Windows.

То же самое касается не только файловых менеджеров, но и прикладных программ: текстовых, графических и видео редакторов и другого ПО.

Надеюсь, инструкция прояснила причины ошибки и возможные способы решения проблемы. Если же вопросы остаются — жду их в комментариях.

Материал из РУВИКИ — свободной энциклопедии

Logo-ran.png

Проводится экспертиза
Российской Академией Наук

Подробнее

Экспертиза РАН

Logo-ran.png

Проводится экспертиза
Российской Академией Наук

Ege oge.png

База знаний для подготовки к ЕГЭ и ОГЭ, проверенная Российской Академией наук

Подробнее

Материал ОГЭ/ЕГЭ

Ege oge.png

База знаний для подготовки к ЕГЭ и ОГЭ, проверенная Российской Академией наук

Полное имя файла — это строка символов, определяющая путь к файлу в файловой системе, включая все каталоги от корня до самого файла. Оно позволяет однозначно идентифицировать и найти файл в операционной системе.

Основные понятия

  • Имя файла — название файла в каталоге, используемое для его идентификации.
  • Полное (абсолютное) имя файла — путь, содержащий все каталоги от корневого до файла.
  • Относительный путь — путь к файлу относительно текущего каталога.
  • Расширение имени файла — часть имени после последней точки, указывающая тип или формат файла.

Структура полного имени файла в разных системах

Windows

Отображение содержимого каталога C:\temp с именами файлов в командной строке Windows

В операционных системах Windows полное имя файла записывается следующим образом:

C:\Каталог\Подкаталог\ИмяФайла.расширение

  • C: — буква диска.
  • \ — разделитель каталогов (обратная косая черта).
  • Каталоги и подкаталоги следуют через \.
  • Имя файла может содержать расширение после точки.

Пример:

C:\Windows\System32\calc.exe

Максимальная длина полного имени файла составляет 260 символов, однако с использованием специальных префиксов можно увеличить этот предел до 32 767 символов:

\\?\C:\Путь\Очень_длинное_имя_файла.txt

UNIX и UNIX-подобные системы

В UNIX-системах полное имя файла выглядит так:

/Каталог/Подкаталог/ИмяФайла

  • / — корневой каталог и разделитель каталогов.
  • Каталоги и подкаталоги разделяются символом /.

Пример:

/usr/local/bin/gcc

Относительные пути начинаются без / и отсчитываются от текущего каталога. Символ ~ обозначает домашний каталог пользователя:

  • ~/Документы — домашний каталог текущего пользователя.
  • ~user/Загрузки — домашний каталог пользователя user.

Расширение имени файла

Расширение имени файла — последовательность символов после последней точки в имени файла, обозначающая тип или формат файла.

Примеры:

  • document.txt — текстовый файл.
  • archive.zip — архивный файл.
  • photo.jpg — изображение в формате JPEG.

Операционные системы и приложения могут использовать расширения для определения программы по умолчанию для открытия файла. Иногда используются множественные расширения, например, archive.tar.gz.

Запрещённые символы в именах файлов

Некоторые символы запрещены в именах файлов из-за их специального значения в операционной системе.

В Windows запрещены следующие символы:

  • \, / — разделители каталогов.
  • : — отделяет букву диска или поток данных.
  • *, ? — символы подстановки в масках.
  • " — для обозначения строк.
  • <, >, | — перенаправление ввода/вывода.
  • . — недопустима в конце имени (за исключением особых случаев).

В UNIX-системах запрещены:

  • / — разделитель каталогов.
  • Символ null (\0) — конец строки в языке C.

Заключение

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

Литература

  • Босова Л. Л., Босова А. Ю. Информатика: учебник для 9 класса. — М.: БИНОМ. Лаборатория знаний, 2013.
  • Семакин И. Г., Залогова Л. А., Русаков С. В., Шестакова Л. В. Информатика: учебник для 9 класса. — М.: БИНОМ. Лаборатория знаний, 2015. — Т. 3-е изд..
  • Поляков К. Ю., Еремин Е. А. Информатика. 9 класс. — М.: БИНОМ. Лаборатория знаний, 2017.
  • Угринович Н. Д. Информатика и ИКТ: учебник для 9 класса. — М.: БИНОМ. Лаборатория знаний, 2012. — Т. 6-е изд..

В общем, нашёл, что под Windows ограничение на 255 символов, а под Linux на 255 байт, и написал такой код для копирования файлов с переименованием (там в имени сохраняются координаты прямоугольиков, и их может быть много, не лучшее решение, но это не я придумал).

std::string filename = current_image->path().stem().string();

        #if OS == LINUX
        for (const auto& ch : filename)
            if (!std::isalpha(ch) && !std::isdigit(ch) &&
                ch != ' ' && ch != '.' &&ch != '-' && ch != '_')
            {
                QMessageBox::warning(
                    this, "Warning",
                    "Файл не будет сохранён, т.к. содержит недопустимые символы в "
                    "своём имени.\nДопустимые символы: латинские буквы, цифры, "
                    "пробел, точка, '-' и '_'."
                );

                goto filename_invalidity;
            }
        #endif

        for (const auto& rect : rect_grabber->getRects())
        {
            std::string rect_data = "_["
                + std::to_string(rect.x()) + "," + std::to_string(rect.y()) + ","
                + std::to_string(rect.width()) + "," + std::to_string(rect.height()) + ","
                + rect.getType() + "]";

            if (filename.size() + rect_data.size()
                    + current_image->path().extension().string().size() <= 255)
            {
                filename += rect_data;
            }
            else
            {
                QMessageBox::warning(
                    this, "Warning",
                    "Имя файла превысило максимально допустимую длину (255 символов)."
                    " Часть данных разметки не будет сохранена в имени файла."
                );

                break;
            }
        }

        filename += current_image->path().extension().string();

        fs::copy(current_image->path(),fs::path{load_window->getOutDirPath()/filename});
    }

Всё это падает сразу после вывода второго QMessageBox::warning, т.е. при сохранении с переименованием. Но сам алгоритм исключает ситуацию, что будет сохранено более 255 символов (включая расширение с точкой). Что не так?

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 12 марта 2013;
проверки требуют 11 правок.

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

Содержание

  • 1 Основная информация
  • 2 Ограничения
  • 3 Мета-данные
  • 4 Особенности
  • 5 Политики размещения и компоновки
  • 6 См. также
  • 7 Ссылки
    • 7.1 Русскоязычные сайты
    • 7.2 Зарубежные сайты

Основная информация[править | править исходный текст]

Файловая система Создатель Дата представления Родная ОС или платформа
DECtape DEC 1964 PDP-6 Monitor
Level-D DEC 1968 TOPS-10
George 2 ICT (later ICL) 1968 George 2
RT-11 DEC 1970 RT-11
V6FS Bell Labs 1972 Version 6 Unix
V7FS Bell Labs 1979 Version 7 Unix
Disk Operating System (GEC DOS) GEC 1973 Core Operating System
CP/M file system Gary Kildall 1974 CP/M
GEC DOS extended GEC 1977 OS4000
FAT12 Microsoft 1980 Microsoft Disk BASIC
FAT16 Microsoft 1983 MS-DOS 2.0
MFS Apple 1984 Mac OS
HFS Apple 1985 Mac OS

OFS[1]

Metacomco для Commodore 1985 Amiga OS
FAT32 Microsoft 1996 Windows 95b[2]
HPFS IBM & Microsoft 1988 OS/2
NTFS Microsoft, Gary Kimura, Tom Miller 1993 Windows NT
HFS+ Apple 1998 Mac OS
FFS Kirk McKusick 1983 4.2BSD
Amiga FFS Commodore 1987 Amiga OS 1.3
SFS John Hendrikx 1998 Amiga OS
PFS (AFS) Michiel Pelt для Fourth Level Developments 1995 Amiga OS
PFS2 GREat Effects Development 1998 Amiga OS
PFS3 GREat Effects Development 1999 Amiga OS
UFS1 Kirk McKusick 1994 4.4BSD
UFS2 Kirk McKusick 2002 FreeBSD 5.0
NILFS NTT 2005 Linux
LFS Margo Seltzer 1993 Berkeley Sprite
ext2 Rémy Card 1993 Linux
ext3 Stephen Tweedie 1999 Linux
ext4 Andrew Morton 2006 Linux
ReiserFS Namesys 2001 Linux
Reiser4 Namesys 2004 Linux
XFS SGI 1994 IRIX
JFS IBM 1990 AIX[3]
JFS2 IBM 1999 OS/2 WSeB
Be File System Be Inc., D. Giampaolo, C. Meurillon 1996 BeOS
AdvFS DEC 1993 Digital Unix
NSS Novell 1998 NetWare 5
NWFS Novell 1985 NetWare 286
ODS-2 DEC 1979 OpenVMS
ODS-5 DEC 2003 OpenVMS 8.0
UDF ISO/ECMA/OSTA 1995
VxFS VERITAS 1991 SVR4.0
Fossil Bell Labs 2003 Plan9 4
ZFS Sun Microsystems 2004 Solaris
btrfs Oracle Corporation 2007 Linux
exFAT Microsoft 2008 Windows Vista SP1+
Файловая система Создатель Дата представления Родная ОС или платформа
Примечания
  1. Metacomco выпустила так называемую «evolution» версию оригинальной файловой системы Amiga, реализованной первой Amiga Corporation (бывшая Hi-Toro) в 1982-83/85. По правде говоря, Metacomco сделала кашу из ранних ФС, убивших ее простую и легкую структуру. Сперва OFS называлась просто Amiga File System. Название изменили с появлением «новой» Fast File System, созданной в 1987 для той же платформы.
  2. Microsoft впервые представила FAT32 в Windows 95 OSR2 (OEM Service Release 2) и впоследствии в Windows 98.
  3. IBM представила JFS с начальным релизом AIX версии 3.1 в 1990 году. Эта файловая система сейчас называется JFS1. Новая JFS (сейчас называемая JFS2), базирующаяся на Linux‐портах, была впервые применена в OS/2 Warp Server for e-Business в 1999 году.

Ограничения[править | править исходный текст]

Максимальная длина имён файлов Допустимые символы в названиях[1] Максимальная длина пути файла Максимальный размер файла Максимальный размер тома[2]
RT-11 6+3 символа в коде RADIX50 A-Z, 0-9, $ . % <пробел> 14 символов 33,554,432 байт (65536 * 512) 33,554,432 байт
V6FS 14 байт[3] Любые символы, кроме NUL и /[4] Нет установленных ограничений[5] 8MiB[6] 2TiB
V7FS 14 байт[3] Любые символы, кроме NUL и /[4] Нет установленных ограничений[5] 1GiB[7] 2TiB
FAT12 8+3 символов (255 байт для VFAT)[3] Любые символы ANSI (Unicode для VFAT), кроме NUL[3][4] Нет установленных ограничений[5] 32MiB 1MiB — 32MiB
FAT16 8+3 символов (255 байт для VFAT)[3] Любые символы ANSI (Unicode для VFAT), кроме NUL,[3][4] Нет установленных ограничений[5] 2GiB 16MiB — 2GiB
MFS 30 байт[3] Любые символы, кроме NUL и :[4] Нет установленных ограничений[5]  ?  ?
HFS 30 байт[3] Любые символы, кроме NUL и :[4] Нет установленных ограничений[5]  ?  ?
FAT32 255 байт[3] Любые символы Юникода, кроме NUL[3][4] Нет установленных ограничений[5] 4GiB 512MiB — 8TiB[8]
HPFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 4GiB 2TiB[9]
NTFS 255 символов Любые символы Юникода, кроме «NUL» и «/» для POSIX или «NUL», «/», «\», «»», «*», «?», «<», «>», «|», «:» для Win32[10] 32 767 символов Юникода; каждая компонента пути (каталог или имя файла) — до 255 символов[5] 16 EiB[11] 16 EiB[11]
HFS+ 255 символов[12] Любые символы Юникода, кроме NUL[4][13]  ? 8EiB 8EiB
FFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 4GiB 256TiB
Amiga FFS 30 байт Любые символы, кроме NUL, / и : Нет установленных ограничений[5] 2GiB 4GiB
SFS 107 байт Любые символы, кроме NUL, / и : Нет установленных ограничений[5] 4GiB 128GiB
PFS3 31-106 байт[14] Любые символы, кроме NUL, / и : Нет установленных ограничений[5] 108GiB 2TiB
UFS1 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 4GiB — 256TiB 256TiB
UFS2 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 512GiB — 32PiB 1YiB
ext2 255 байт Любые символы, кроме NUL, /[4] Нет установленных ограничений[5] 16GiB — 2TiB[2] 2TiB — 32TiB
ext3 255 байт Любые символы, кроме NUL, /[4] Нет установленных ограничений[5] 16GiB — 2TiB[2] 2TiB — 32TiB
ext4 255 байт Любые символы, кроме NUL, /[4] Нет установленных ограничений[5] 16GiB — 16TiB[2] 1 EiB
ReiserFS 4032 байт/255 символов Любые символы, кроме NUL, /[4] Нет установленных ограничений[5] 8TiB[15] 16TiB
Reiser4  ?  ? Нет установленных ограничений[5] 8TiB on x86  ?
XFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 9EiB[16] 9EiB[16]
JFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 8EiB 512TiB — 4PiB
JFS2 255 байт Любые символы Юникода, кроме NUL Нет установленных ограничений[5] 4PiB 32PiB
Be File System 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 12288 байт — 260GiB[17] 256PiB — 2EiB
AdvFS 255 символов Любые символы, кроме NUL[4] Нет установленных ограничений[5] 16TiB 16TiB
NSS 256 символов Depends on namespace used[18] Ограничивается только возможностями клиента 8TiB 8TiB
NWFS 80 байт[19] Depends on namespace used[18] Нет установленных ограничений[5] 4GiB 1TiB
ODS-5 236 байт[20]  ? 4096 байт[21] 1TiB 1TiB
VxFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 16EiB  ?
UDF 255 байт Любые символы Юникода, кроме NUL 1023 байт[22] 16EiB  ?
ZFS 255 байт Любые символы Юникода, кроме NUL Нет установленных ограничений[5] 16EiB 16EiB
Btrfs 255 байт Любые символы Юникода, кроме NUL и /  ? 16EiB 16EiB
exFAT Неизвестно Любые символы Юникода, кроме NUL Нет установленных ограничений 16EiB 64 ZiB[23] в теории 512 TiB
Максимальная длина имён файлов Допустимые символы в названиях[1] Максимальная длина пути файла Максимальный размер файла Максимальный размер тома[2]
Примечания
  1. 1 2 Это ограничения на структуры входа на-диске каталога непосредственно. Специфические Устанавливаемые драйверы Файловой системы могут разместить собственные ограничения на названия{имена} каталога и файл; и частность и операционные системы могут также разместить собственные ограничения, поперек всего файловых систем. MS DOS, Microsoft Windows, и OS/2 отвергают символы \ / : ? * » > < | и NUL в названии файлов и каталогов на протяжении всех файловых систем. Аналогично, версии операционной системы UNIX и Linux отвергают символы / и NUL.
  2. 1 2 3 4 5 Для файловых систем с переменным размером единицы размещения (блока/кластера) приведён диапазон размеров, показывающий максимальные размеры тома для минимально и максимально возможного размера единицы размещения файловой системы (напр., 512 байт и 128 КиБ для FAT — таков диапазон размера кластера, позволяемый структурами данных на диске, хотя некоторые драйверы устанавливаемых файловых систем и операционные системы не поддерживают размеры кластеров, большие 32 КиБ).
  3. 1 2 3 4 5 6 7 8 9 10 В Windows 95 появилась надстройка над FAT12 и FAT16, называемая VFAT. Она добавляет в указанные файловые системы поддержку длинных имён, до 255 символов и поддержку Unicode. При этом сама основная структура FAT12 и FAT16 не меняется, и может быть прочитана старыми версиями MS-DOS (с поддержкой только коротких имён формата 8.3). В FAT32 поддержка длинных имён имеется изначально. При запуске Windows 95 и Windows 98 в режиме MS-DOS поддержка длинных имён отсутствует, вне зависимости от применяемой файловой системы. В OS/2 длинные имена на FAT не поддерживаются (уточнить). Linux имеет чёткое разграничение на файловые системы FAT12/16 и VFAT. Если при монтировании раздела в Linux указан тип ФС «msdos», то будут поддерживаться только 8-разрядные имена формата 8.3 и не смогут содержать NUL (маркёр конца-каталога) или символ 229 (маркёр стёртого файла). Короткие имена также обычно не содержат символы нижнего регистра.
  4. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 В этих файловых системах элементы каталога с именами «.» и «..» имеют особенное значение. Элементы с этими именами не запрещены, и на самом деле существуют как обычные элементы каталога в структурах данных на диске. Однако, эти элементы должны обязательно присутствовать в каталоге и иметь вышеуказанные значения. Эти элементы автоматически создаются в каждом создаваемом каталоге и каталоги без них считаются испорченными
  5. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Структурам не свойственны ограничения в пределах диска. Специфические драйверы файловых систем и операционные системы могут наложить собственные ограничения. MS DOS не поддерживает пути к файлам длиннее 260 байт для FAT12 и FAT16. Аналогичное ограничение в Windows NT 32767 байт для файловой системы NTFS.
  6. Действительный максимум был 8 847 360 байт, с 7 singly-indirect блоками и 1 doubly-indirect блоком; Вариант PWB/UNIX 1.0 использовал 8 singly-indirect блоков, достигая максимума в 524 288 байт или в половину MiB.
  7. Действительный максимум был 1 082 201 088 байт, с 10 direct блоками, 1 singly-indirect блоком, 1 doubly-indirect блоком, и 1 triply-indirect блоком. Версии 4.0BSD и 4.1BSD, а также System V использовали 1024-байтные блоки вместо 512-байтных, с максимумом в 4 311 812 608 байт или примерно 4 GiB.
  8. Большой раздел FAT32, будучи созданным, может работать нормально, но некоторые программы не позволяют создавать раздел FAT32 более 32GiB. К ним относится и программа установки Windows XP. Используйте команду FDISK с диска восстановления Windows ME (Emergency Boot Disk), для обхода этого ограничения.
  9. Это — предел структур «на-диске». Устанавливаемый драйвер Файловой системы HPFS для OS/2 использует высшие 5 битов номера сектора тома для его собственного использования, ограничивая размер тома до 64 ГБ.
  10. www.linux-ntfs.org — NTFS Documentation (single HTML file)
  11. 1 2 Это ограничение дисковых структур. драйвер NTFS для Windows NT ограничивает размер поддерживаемого тома до 256 TiB, а размер файла — до 16 TiB соответственно.
  12. HFS, устаревшая версия HFS+, поддерживает только 31‐символьные имена файлов; более старые приложения обычно не работают с именами такой длины.
  13. HFS+ поддерживает использование escape-последовательностей, чтобы работать с Unicode. Пользователи старого программного обеспечения могут увидеть escape-последовательности вместо символов.
  14. Однократно задаётся специальной программой setfnsize.
  15. ReiserFS теоретически может иметь размер файлов в 1 ЭиБ, но «предел в 8 ТиБ появился на данный момент в результате применения 32‐битной архитектуры распределения страничного кэша»[1]
  16. 1 2 XFS имеет ограничение в Linux 2.4 на 64 ТиБ размер файлов и 2 ТиБ размер файловой системы. Этого ограничения нет в системе IRIX.
  17. Сильно варьирует в зависимости от размера блока и фрагментации групп размещения блоков.
  18. 1 2 NSS позволяет файлам иметь множественные названия, в отдельном именном пространстве.
  19. Некоторые пространства имен имели меньшие ограничения по длине имени. В «LONG» был лимит в 80 байт, в «NTFS» 80 байт, в «NFS» 40 байт и в «DOS» подразумевались имена типа 8.3.
  20. Максимальная общая длина имени файла/расширения составляет 236 байт; некоторые компоненты имеют собственную максимальную длину в 255 байт.
  21. Максимальная длина имени пути — 4096 байтов, но предел на индивидуальных компонентах составляют в целом 1664 байта.
  22. Это ограничение может быть снято в более новых версиях.
  23. Значение вычислено на основании 64-разрядного количества секторов размером 4096 байт. Однако текущая спецификация exFAT 32-разрядная с наибольшим кластером в 25 бит, что даёт адресуемый объём около 128 PiB

Мета-данные[править | править исходный текст]

Запись владельца файла Права файлов POSIX Временные метки создания файла Временные метки доступа/чтения Временные метки изменений метаданных Временные метки последнего архивирования ACL Метки безопасности/MAC Расширенные атрибуты/Fork (filesystem)|Альтернативные потоки данных/вызовы Контрольные суммы/ECC
RT-11 Нет Нет Нет Да Да Нет Нет Нет Нет Нет
V6FS Да Да Нет Да Да Нет Нет Нет Нет Нет
V7FS Да Да Нет Да Да Нет Нет Нет Нет Нет
FAT12 Нет Нет Да Да Нет Нет Нет Нет Нет[1] Нет
FAT16 Нет Нет Да Да Нет Нет Нет Нет Нет[1] Нет
FAT32 Нет Нет Да Да Нет Нет Нет Нет Нет[1] Нет
HPFS Да[2] Нет Да Да Нет Нет Нет  ? Да Нет
NTFS Да Нет[3] Да Да Да Нет Да  ? Да Нет
HFS+ Да Да Да Да Да  ? Да  ? Да Нет
FFS Да Да Нет Да Да Нет Нет Нет Нет Нет
Amiga FFS Нет Нет Да Нет Да Нет Нет Нет Да Нет
SFS Нет Нет Да Нет Да Нет Нет Нет Да Нет
PFS3 Нет Нет Да Нет Да Нет Нет Нет Да Нет
UFS1 Да Да Нет Да Да Нет Да[4] Да[4] Нет[5] Нет
UFS2 Да Да Да Да Да Нет Да[4] Да[4] Да Нет
LFS Да Да Нет Да Да Нет Нет Нет Нет Нет
ext2 Да Да Нет Да Да Нет Да[6] Да[6] Да Нет
ext3 Да Да Нет Да Да Нет Да[6] Да[6] Да Нет
ext4 Да Да Да Да Да Нет Да[6] Да[6] Да Да
ReiserFS Да Да Нет Да Да Нет Да[6] Да[6] Да Нет
Reiser4 Да Да Нет Да Да Нет Нет Нет Нет Нет
XFS Да Да Нет Да Да Нет Да Да[6] Да Нет
JFS Да Да Да Да Да Нет Да Да Да Нет
Be File System Да Да Да Нет Нет Нет Нет Нет Да Нет
AdvFS Да Да Нет Да Да Нет Да Нет Да Нет
NSS Да Да Да[7] Да[7] Да Да[7] Да  ? Да[8][9] Нет
NWFS Да  ? Да[7] Да[7] Да Да[7] Да  ? Да[8][10] Нет
ODS-5 Да Да Да  ?  ? Да Да  ? Да[11] Нет
VxFS Да Да Да Да Да Нет Да  ? Да[6] Нет
UDF Да Да Да Да Да Нет Да Нет Да Нет
Fossil Да Да[12] Нет Да Да Нет Нет Нет Нет Нет
ZFS Да Да Да Да Да Да Да Да Да[13] Да
exFAT Нет Нет Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно Частично
Запись владельца файла Права файлов POSIX Временные метки создания файла Временные метки доступа/чтения Временные метки изменений метаданных Временные метки последнего архивирования ACL Метки безопасности/MAC Расширенные атрибуты/Fork (filesystem)|Альтернативные потоки данных/вызовы Контрольные суммы/ECC
Примечания
  1. 1 2 3 Драйверы FAT12 и FAT16 в OS/2 и Windows NT поддерживают расширенные атрибуты (используя псевдофайл «EA DATA. SF», чтобы занять для них кластеры для них). Драйверы для других операционных систем их не поддерживают.
  2. F-node содержит поле идентификатора пользователя. Это не используется нигде, кроме OS/2 Warp Server.
  3. Списки контроля доступа NTFS могут описывать любой способ доступа в стиле POSIX, но использование POSIX-подобного интерфейса не поддерживаются без дополнения «Сервисов для UNIX» или Cygwin.
  4. 1 2 3 4 Списки контроля доступа и Мак-метки наслоены наверху расширенных атрибутов.
  5. Некоторые операционные системы осуществили расширенные атрибуты как слой по UFS1 с параллельным поддерживанием файлов (например, FreeBSD 4.x).
  6. 1 2 3 4 5 6 7 8 9 10 Некоторые устанавливаемые драйверы файловой систем и операционные системы не могут поддержать расширенные атрибуты, списки контроля доступа или защищённые метки на этих файловых системах. Ядра Linux до 2.6.x могут или пропускать поддержку их в целом или требовать патча.
  7. 1 2 3 4 5 6 Местное время, смещение по часовым поясам/UTC, и дата получено из параметров настройки времени ссылок/single timesync source in the NDS tree.
  8. 1 2 Novell называет эту особенность «множественные потоки данных». В опубликованных спецификациях говорится, что NWFS разрешает до 16 атрибутов и 10 потоков данных, и NSS разрешает неограниченные количества для обоих.
  9. Некоторые метаданные файлов и каталогов сохранены на сервере Netware независимо от того, установлены ли Сервисы директорий или нет, подобно дате/времени создания, размеру файла, состояния чистки, и так далее; и некоторые метаданные файлов и каталогов сохранённые в NDS/eDirectory, подобно разрешению доступа, монопольному использованию, и т. д.
  10. Ошибка в сносках?: Неверный тег <ref>; для сносок ref29 не указан текст
  11. Атрибуты сервисов управлениев записями (RMS) включают тип и размер записи среди многих других.
  12. Атрибуты доступа файлов в 9P являются вариантом традиционных атрибутов доступа Unix с незначительными отличиями, например suid bit заменён новым атрибутом — эксклюзивный доступ (англ. exclusive access).
  13. «Расширенные атрибуты» Solaris’а на самом деле развитая версия альтернативных потоков данных, как в Solaris UFS, так и в ZFS.

Особенности[править | править исходный текст]

Жёсткие ссылки Символьные ссылки Журналирование блоков или Журналирование только мета-данных Чувствительно к регистру Сохранение регистра символов Лог изменений файлов Снапшоты XIP
RT-11 Нет Нет Нет Нет Нет Нет Нет Нет Нет
V6FS Да Нет Нет Нет Да Да Нет Нет Нет
V7FS Да Нет[1] Нет Нет Да Да Нет Нет Нет
FAT12 Нет Нет Нет Нет Нет Нет Нет Нет[2] Нет
FAT16 Нет Нет Нет Нет Нет Частично Нет Нет[2] Нет
FAT32 Нет Нет Нет Нет Нет Частично Нет Нет[2] Нет
HPFS Нет Нет Нет Нет Нет Да Нет Неизвестно Нет
NTFS Да Да[3] Да[4] Да Да[5] Да Да Да[6] Неизвестно
HFS+ Частично Да Нет Да[7] Да[8] Да Нет Неизвестно Нет
FFS Да Да Нет Нет Да Да Нет Нет Нет
UFS1 Да Да Нет Нет Да Да Нет Нет Нет
UFS2 Да Да Нет Нет Да Да Нет Да Неизвестно
LFS Да Да Да[9] Нет Да Да Нет Да Нет
ext2 Да Да Нет Нет Да Да Нет Нет Неизвестно
ext3 Да Да Да[10] Да Да Да Нет Нет Неизвестно
ext4 Да Да Да[10] Да Да Да Нет Нет Неизвестно
ReiserFS Да Да Да[11] Да Да Да Нет Нет Неизвестно
Reiser4 Да Да Да Нет Да Да Нет Неизвестно Неизвестно
XFS Да Да Нет Да Да[12] Да Да Да Неизвестно
JFS Да Да Нет Да Да[13] Да Нет Неизвестно Неизвестно
Be File System Да Да Нет Да Да Да Неизвестно Неизвестно Нет
NSS Да Да Неизвестно Да Да[14] Да[14] Да[15] Да Нет
NWFS Да[16] Да[16] Нет Нет Да[14] Да[14] Да[15] Неизвестно Нет
ODS-2 Да Да[17] Нет Да Нет Нет Да Да Нет
ODS-5 Да Да[17] Нет Да Нет Да Да Да Неизвестно
UDF Да Да Да[9] Да[9] Да Да Нет Нет Да
VxFS Да Да Да Нет Да Да Да Нет Неизвестно
Fossil Нет Нет Нет Нет Да Да Да Да Нет
ZFS Да Да Да[18] Нет[18] Да Да Нет Да Неизвестно
exFAT Нет Нет Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно
Жёсткие ссылки Символьные ссылки Журналирование блоков или Журналирование только мета-данных Чувствительно к регистру Сохранение регистра символов Лог изменеий файлов Снапшоты XIP
Примечания
  1. System V Release 4, и некоторые другие Unix-системы, модифицировали свои версии файловой системы Version 7 Unix для поддержки символических ссылок, хотя оригинальная версия такой возможностью не обладала.
  2. Ошибка в сносках?: Неверный тег <ref>; для сносок ref60 не указан текст
  3. NTFS 3.0 (Windows NT 5.0) и выше может создавать связывания, которые позволяют монтировать отдельные каталоги (но не файлы!) в любое место дерева каталогов локально управляемого диска. Связывания реализованы через так называемые reparse points, которые позволяют расширить обычный процесс разрешения файловых имён гибким способом.
  4. Журналирование собственно данных, в отличие от метаданных (что было всегда), появилось в Windows Vista и называется TxF. Эта возможность, помимо повышения устойчивости к сбоям, поддерживает откаты транзакций на файлах, а также объединение операций с файлами, реестрами и базами данных в одну ACID транзакцию.
  5. http://support.microsoft.com/kb/100625 — В рамках POSIX-приложений да, в рамках Win32-приложений нет.
  6. Снапшоты поддерживаются не самой NTFS, которая сама по себе не имеет ровно никаких средств их поддержки в своих метаданных, а нижележащим драйвером VolSnap.sys, и потому не зависят от типа FS и поддерживаются для FAT. Тем не менее, системные данные снапшота могут храниться только на NTFS томе, потому при снапшоте FAT тома его системные данные хранятся на другом томе.
  7. Журналирование только метаданных было представлено в драйвере HFS+ Mac OS 10.2.2; журналирование по умолчанию было включено в Mac OS 10.3 и более поздних.
  8. Отключено по умолчанию.
  9. 1 2 3 UDF и LFS (log-structured file system) являются файловыми системами с журнальным структурированием и ведут себя как будто вся файловая система является журналом. Неверно: UDF может использоваться в таком режиме, но это не обязательно
  10. 1 2 По умолчанию отключено.
  11. Полное журналирование блоков в ReiserFS было добавлено в Linux 2.6.8.
  12. В ОС IRIX возможно необязательное игнорирование регистра букв имён файлов в XFS.
  13. Некоторые драйверы устанавливаемых файловых систем и операционные системы могут не поддерживать регистрозависимость JFS. В частности, OS/2 вообще не поддерживает, а в Linux существует опция монтирования, отключающая регистрозависимость.
  14. 1 2 3 4 Чувствительность к регистру/Сохранение зависит от клиента. Windows, DOS, и клиенты OS/2 не замечают/сохраняют различия между разным регистром, тогда как клиенты, обращающиеся через NFS или AFP могут.
  15. 1 2 Логи и время изменения файла и другие метаданные файловой системы — часть обширного набора программ поддержки аудитинга встроенного в NDS/eDirectory — NSure Audit. (Filesystem Events tracked by NSure)
  16. 1 2 Доступно только в пространстве имён «NFS».
  17. 1 2 Это передаётся как «алиасы».
  18. 1 2 ZFS — транзакционная файловая система, использующая семантику copy-on-write, гарантирующую всегда корректное состояние данных на диске без использования традиционного журнала. Однако она также использует специальный журнал для увеличения производительности при запросах на синхронную запись.

Политики размещения и компоновки[править | править исходный текст]

Частичная (Хвостовая) упаковка Прозрачная компрессия Шифрование Перераспределение блоков Распределение на лету Экстент Переменный размер блоков[1]
V6FS Нет Нет Неизвестно Нет Нет Нет Нет
V7FS Нет Нет Неизвестно Нет Нет Нет Нет
FAT12 Нет Нет[2] Неизвестно Нет Нет Нет Нет
FAT16 Нет Нет[2] Неизвестно Нет Нет Нет Нет
FAT32 Нет Нет[2] Неизвестно Нет Нет Нет Нет
HPFS Нет Нет Неизвестно Нет Нет Да Нет
NTFS Нет Да Да (ESF начиная с NTFS 3.0) Частично Нет Да Нет
HFS+ Нет Нет Неизвестно Неизвестно Нет Да Нет
FFS Нет Нет Неизвестно 8:1[3] Нет Нет Нет
UFS1 Нет Нет Неизвестно 8:1[3] Нет Нет Нет
UFS2 Нет Нет Неизвестно 8:1[3] Нет Нет Да
LFS Нет Нет Неизвестно 8:1[3] Нет Нет Нет
ext2 Нет Нет[4] Неизвестно Нет[5] Нет Нет Нет
ext3 Нет Нет Неизвестно Нет[5] Нет Нет Нет
ext4 Неизвестно Нет Нет Неизвестно Неизвестно Да Нет
ReiserFS Да Нет Неизвестно Нет Нет Нет Нет
Reiser4 Да Да[6] Да (прозрачное, плагин)[6] Нет Да Да[7] Нет
XFS Нет Нет Неизвестно Нет Да Да Нет
JFS Нет Да[источник не указан 1855 дней] Неизвестно Да Нет Да Нет
Be File System Нет Нет Неизвестно Неизвестно Нет Нет Неизвестно
NSS Нет Да Да (зашифрованные тома) Нет Нет Да Нет
NWFS Нет Да Неизвестно Да[8] Нет Нет Нет
ODS-5 Нет Нет Неизвестно Нет Нет Да Нет
VxFS Нет Нет Неизвестно Неизвестно Нет Да Нет
UDF Нет Нет Неизвестно Нет Неизвестно[9] Да Нет
Fossil Нет Да Неизвестно Нет Нет Нет Нет
ZFS Нет Да Да (c версии ZFS Pool Version 30) Неизвестно Неизвестно Нет Да
exFAT Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно Неизвестно
Частичная (Хвостовая) упаковка Прозрачная компрессия Шифрование Перераспределение блоков Распределение на лету Экстент Переменный размер блоков[1]
Примечания
  1. 1 2 Переменный размер блока относится к системам, поддерживающим переменную длину блока пофайлово. (Аналогично extent, но это несколько иная реализация.) В настоящий момент UFS2 поддерживает такой вариант в режиме только для чтения.
  2. 1 2 3 DoubleSpace в DOS 6, и DriveSpace в Windows 95 и Windows 98 предоставлял схемы сжатия данных для FAT; в данное время не поддерживается Microsoft.
  3. 1 2 3 4 Так же поддерживаются и другие варианты соотношений блок: фрагмент; Большинство реализаций рекомендуют соотношение 8:1.
  4. e2compr, набор патчей реализующих поблочное сжатие для ext2, доступен с 1997, но его никогда не включали в основное ядро Linux.
  5. 1 2 В ext2 и ext3 предполагалась поддержка фрагментов, однако она так и не была реализована.
  6. 1 2 Reiser4 включает сжатие данных, но это не представлено в VFS API. Reiser4 поддерживает прозрачное сжатие и шифрование с плагином cryptcompress который идёт в комплекте с версией 4.1.
  7. В «расширенном» режиме.
  8. Подвыделение блоков делит устройство хранения на блоки от 4 KiB до 64 KiB (обычно 8 KiB), и если блок не используется целиком, остаток снова делится на 512-байтные подблоки для других файлов, обычно небольшого размера.
  9. Присутствует в зависимости от реализации UDF.

См. также[править | править исходный текст]

  • Список файловых систем
  • Хронология операционных систем
  • Сравнение дистрибутивов Linux

Ссылки[править | править исходный текст]

Русскоязычные сайты[править | править исходный текст]

  • Файловые системы @ dmoz.org
  • Современные файловые системы
  • Сравнение файловых систем (FAT16/32 и NTFS)

Зарубежные сайты[править | править исходный текст]

  • Disc and volume size limits  (англ.)
  • Attribute — $EA_INFORMATION (0xD0)  (англ.)
  • Attribute — $EA (0xE0)  (англ.)
  • Attribute — $STANDARD_INFORMATION (0x10)  (англ.)
  • Local Filesystems for Windows  (англ.)
  • Understanding File-Size Limits on NTFS and FAT  (англ.)
  • Benchmarking Filesystems Part II using kernel 2.6, by Justin Piszcz, Linux Gazette 122, January 2006  (англ.)
  • Linux File System Benchmarks v2.6 kernel with a stress on CPU usage  (англ.)
  • Interview With the People Behind JFS, ReiserFS & XFS  (англ.)
  • Overview of some filesystems (outdated)  (англ.)
  • Linux large file support (outdated)  (англ.)
  • Sparse files support (outdated)  (англ.)
  • Benchmarking Filesystems (outdated) by Justin Piszcz, Linux Gazette 102, May 2004  (англ.)
  • Journaled Filesystem Benchmarks (outdated): A comparison of ReiserFS, XFS, JFS, ext3 & ext2  (англ.)
  • Journal File System Performance (outdated): ReiserFS, JFS, and Ext3FS show their merits on a fast RAID appliance  (англ.)
  • IOzone Filesystem Benchmark  (англ.) — Средство тестирования производительности ФС.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Кастом сборка windows 10
  • Как сделать отображение секунд в windows 10
  • Флешка восстановления windows 10 32 bit
  • Download qbittorrent windows x64
  • Перезагрузка не заканчивается windows 10