-
Категория:
Фундаментальные статьи -
– Автор:
Игорь (Администратор)
Вы когда-нибудь сталкивались с сообщением об ошибке в Windows, в котором говорилось бы о не возможности скопировать (переместить) файл и о том, что имя одного из файлов слишком большое? Если да, то вы, наверное, задавались вопросом почему такое сообщение появилось (пример ниже на картинке). В данной статье будут объяснены особенности и тонкости ограничений, которые накладываются на длину имени файла в Windows.
В зависимости от структуры файловой системы, на длину имен файлов будут накладываться различные ограничения. Важно помнить и понимать, что имя файла складывается не только из расширения и того названия, которое вы дали ему при создании. Имя файла включает в себя всю необходимую операционной системе информацию для точной идентификации файла. Другими словами, имя файла включает в себя диск и все каталоги, внутри которых находится файл. Кроме того, имя может содержать различную системную информацию (и не обязательно, что вы ее будете где-либо видеть).
Примечание: Если вы не знали, то в большинстве файловых систем каталог — это разновидность файла, но с нулевым размером данных.
Существует множество различных файловых систем, каждая из который по-своему определяет структуру имени файла, включая способ построения пути к файлу. К примеру, на небольших usb устройствах хранения данных, обычно, используется система FAT32. А на оптических дисках (CD/DVD) обычно используется UDF или ISO 9660. На системных дисках последних ОС Windows используется файловая система NTFS, которая и станет предметом данной статьи (как наиболее распространенная для Windows).
Примечание: К примеру, на системных дисках с Windows XP, часто, использовалась файловая система FAT32. Однако, у нее был существенный (для сегодняшнего времени) недостаток — это ограничение на максимальный размер файла в 4 Гб. NTFS же не имеет такого ограничения.
Существует некоторая путаница в цифрах максимальной длины имени файла в файловой системе NTFS, которую вы можете обнаружить в различных источниках. Для начала, есть абсолютный предел, введенный Windows API, и он составляет 260 символов. Тем не менее, практический пределе меньше, чем 260 символов. Например, все имена должны иметь нулевой терминатор в конце. Обычно, этот маркер видит только Windows, но он все равно воспринимается, как один символ. Таким образом ,у вас есть только 259 доступных символов. Еще три символа используются для указания диска (например, C:\). Таким образом, реальный предел для имени, содержащего все каталоги, включая вложенные, и название самого файла вместе с расширением, уменьшается до 256 символов.
Примечание: Windows API — ядровой интерфейс, на котором строится вся операционная система и который используют программы.
Тем не менее, есть еще одна тонкость, связанная с тем, как Windows кодирует символы. Ни один индивидуальный объект (файл или каталог) не может иметь имя длиннее 255 символов. При этом, имя включает в себя пробелы и обратную косую черту, которая используется в качестве разделителей. Этот предел в 255 символов часто цитируется, как предел для названия отдельного файла, но, на практике, это относится только к именам файлов в корневом каталоге без каких-либо каталогов.
Существует и еще одно ограничение на длину имени файла, которое часто упускается из виду. Обычно, по умолчанию Windows поддерживает альтернативное имя файла, используя старую систему именования 8.3. Когда вы создаете папку, Windows будет резервировать 12 символов для альтернативного имени файла, оставляя 244 символов для всех содержащихся внутри объектов. Использование системы именования 8.3 можно отключить, но это может вызвать проблемы, при использовании старых 16-битных программ.
Примечание: Система именования 8.3 довольно проста. 8 — это количество символов наименования. «.» — это разделитель между названием и расширением. 3 — это количество символов для расширения. 12 — это 8 + 1 + 3.
Примечание: Подробнее о том, как отключить поддержку 8.3, смотрите информацию по адресу https://technet.microsoft.com/ru-ru/library/cc778996.aspx. Учтите, что вам потребуется редактировать реестр.
Существует так же механизм, который позволяет использовать более длинные имена файлов. Например, сетевым системам, порой, требуется больше гибкости в именах файлах. Поэтому, Windows API включает в себя специальную систему обращения для поддержки очень длинных Unicode имен в блоках по 255 символов. Эти длинные имена начинаются с префикса «\\?\» (без кавычек). Так что, если вы столкнулись с проблемой в имени файла, у которого длина слишком большая, то попробуйте использовать этот префикс в имени пути, например, «\\?\c:\file.txt» (без кавычек).
Большинство случаев ошибок слишком длинных путей имен файлов связаны именно с большим уровнем вложенности каталогов. Поэтому, знание об ограничениях позволит вам быть осторожными, при создании структуры ваших каталогов, и избежать проблем, связанных со слишком длинными именами.
☕ Понравился обзор? Поделитесь с друзьями!
-
Типы программ резервирования: какая разница между образом диска, файловым бэкапом и синхронизацией, и какой тип стоит использовать?
Фундаментальные статьи -
Что такое RSS и как его использовать?
Фундаментальные статьи -
Что означает портативное приложение (portable)?
Фундаментальные статьи -
IP-адрес и его особенности
Фундаментальные статьи -
Joomla 2.5 добавление пользователями материалов (статей) на сайт
Фундаментальные статьи -
Система поведенческого анализа антивируса простыми словами
Фундаментальные статьи
Добавить комментарий / отзыв
Слишком длинное имя файла или слишком длинный целевой путь — как исправить?
При копировании, создании, сохранении или перемещении файлов и папок в Windows 11 и Windows 10 на внутреннем HDD или SSD, при копировании данных на внешний диск или флешку, вы можете столкнуться с ошибками вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку», «Указано неправильное или слишком длинное имя файла» и другие, имеющие отношение к слишком длинным именам или путям к файлам и папкам.
В этой инструкции подробно о том, чем вызваны эти ошибки и как можно их исправить в Windows последних версий, а также дополнительная информация, которая может быть полезной, чтобы решить проблему.
- Слишком длинное имя файла или слишком длинный целевой путь
- Причины ошибки и способы её исправить
- Как включить поддержку длинных путей в Windows
- В редакторе реестра
- В редакторе локальной групповой политики
- Почему ошибка сохраняется при включенной поддержке длинных путей
Причины ошибки «Слишком длинное имя файла» и «Слишком длинный целевой путь» и способы её исправить
Несмотря на то, что файловой системой NTFS длина пути ограничена 32760 символов, в Windows существует ограничение на полный путь в 260 символов, включая путь к папке и имя файла с расширением. Ещё одно ограничение — 255 символов на имя файла или отдельной папки. Схожие ограничения есть для файловых систем FAT32 и ExFAT. Когда полный путь к файлу, с которым вы выполняете действия, превышает указанное число символов, вы можете получить сообщение об ошибках о слишком длинном целевом пути или слишком длинном имени файла.
Отсюда основные способы исправить ошибки, связанные с использованием слишком длинного пути:
- Использовать более короткие имена файлов и более простое и «компактное» дерево папок.
- Включить поддержку длинных путей — такая опция есть в Windows 10 и Windows 11, далее будет рассмотрен порядок действий. Однако, это решит не все проблемы, о чем мы также поговорим.
- Использовать файловые менеджеры, которые могут работать с длинными путями по умолчанию: Total Commander, Files (но для него потребуется включить и поддержку длинных путей в системе) или даже 7-Zip File Manager, который прекрасно с этим справляется.
Как включить поддержку длинных путей в Windows 10 и Windows 11
В зависимости от установленной редакции Windows, можно использовать один из следующих способов включения поддержки длинных путей.
В редакторе реестра
Если на вашем компьютере установлена Windows 11 или Windows 10 Домашняя, используйте редактор реестра для включения опции:
- Нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить» или нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter.
- В редакторе реестра перейдите к разделу
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
- В правой панели редактора реестра дважды нажмите по параметру с именем LongPathsEnabled и присвойте значение 1 вместо 0 для этого параметра.
- Закройте редактор реестра, перезагрузите компьютер.
В редакторе локальной групповой политики
В Windows Pro и Enterprise можно использовать редактор локальной групповой политики:
- Нажмите клавиши Win+R на клавиатуре, введите gpedit.msc в диалоговом окне «Выполнить» и нажмите Enter.
- Перейдите к разделу Конфигурация компьютера — Административные шаблоны — Система — Файловая система.
- Дважды нажмите по параметру «Включить длинные пути Win32».
- Установите значение «Включено» для этого параметра, примените настройки.
- Закройте редактор локальной групповой политики и перезагрузите компьютер.
Готово, теперь поддержка длинных путей в Windows включена, однако это не означает, что ошибки, с ними связанные, исчезнут.
Почему ошибки длинных путей появляются, несмотря на включенную поддержку длинных путей
Даже если вы включите поддержку длинных путей к папкам и файлам в Windows 11/10, при действиях с такими файлами в проводнике и некоторых программах вы продолжите получать ошибки вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку» или «Указано неправильное или слишком длинное имя файла», также будут недоступны некоторые действия в папках, имеющих длинный путь.
Причина этого — поддержка длинных путей требуется не только на уровне системы, но и в самой программе, которая работает с этими путями, в качестве примера:
- Проводник не сможет полноценно работать с длинными путями даже при включенной поддержке.
- Файловый менеджер Files из магазина приложений будет исправно работать, если включить поддержку длинных путей, и будет сообщать об ошибках при отключенной поддержке.
- Total Commander или встроенный файловый менеджер 7-Zip работают с длинными путями независимо от того, включена ли их поддержка в Windows.
То же самое касается не только файловых менеджеров, но и прикладных программ: текстовых, графических и видео редакторов и другого ПО.
Надеюсь, инструкция прояснила причины ошибки и возможные способы решения проблемы. Если же вопросы остаются — жду их в комментариях.
Перейти к содержанию
На чтение 3 мин Опубликовано Обновлено
При работе с операционной системой Windows важно соблюдать определенные требования и правила в именах файлов. Неверное имя файла может вызвать проблемы в работе компьютера, создать конфликты прикладных программ и затруднить работу пользователя. В данной статье рассмотрим основные ограничения и правила, а также рекомендации по выбору имен файлов в Windows.
Одним из главных ограничений в именах файлов является использование некоторых специальных символов, таких как знаки вопроса (?), знаки восклицания (!), знаки процента (%), знаки хеш-символа (#) и другие. Все эти символы имеют специальное значение для операционной системы, поэтому их использование в именах файлов может привести к ошибкам и нежелательным результатам.
Еще одним ограничением является максимальная длина имени файла — 255 символов. В данное число входят не только символы имени файла, но и символы пути к файлу. Для компьютеров с файловой системой NTFS максимальная длина пути составляет 32 767 символов, но большинство приложений и операционных систем не поддерживает такие длинные имена файлов и путей, поэтому рекомендуется придерживаться краткости.
Также стоит учитывать регистр символов в именах файлов. В операционной системе Windows регистрозависимые файловые системы (например, FAT и NTFS) учитывают регистр символов, то есть файл «file.txt» и «File.txt» будут считаться разными файлами. Это нужно учитывать при работе с файлами, чтобы избежать ошибок и путаницы.
Основные правила и ограничения имени файлов в Windows
Вот основные правила и ограничения, которые следует учитывать при именовании файлов в Windows:
Правило / Ограничение | Описание |
---|---|
Длина имени | Имя файла не должно превышать 255 символов. Это включает в себя имя файла и его расширение. |
Разрешенные символы | Имя файла может содержать латинские буквы (A-Z, a-z), цифры (0-9), а также специальные символы, такие как точка (.), тире (-) и подчеркивание (_). |
Запрещенные символы | Некоторые символы запрещены в именах файлов, такие как знаки вопроса (?), звездочка (*), двоеточие (:), вертикальная черта (|), обратная косая черта (\), кавычки («»), угловые скобки (< >) и другие. |
Регистр символов | Имена файлов в Windows регистрозависимы, то есть различают между большими и малыми буквами. Например, файл «File.txt» и «file.txt» будут считаться различными файлами. |
Зарезервированные имена | Существуют зарезервированные имена файлов, которые нельзя использовать, такие как «CON», «PRN», «NUL», «COM1», «LPT1» и другие. Использование этих имен может вызвать ошибки при работе операционной системы. |
Обращайте внимание на эти правила и ограничения, чтобы избежать проблем при работе с файлами в Windows. Соблюдение этих правил обеспечивает безопасность и стабильность работы операционной системы.
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 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+ |
Файловая система | Создатель | Дата представления | Родная ОС или платформа |
- Примечания
- ↑ Metacomco выпустила так называемую «evolution» версию оригинальной файловой системы Amiga, реализованной первой Amiga Corporation (бывшая Hi-Toro) в 1982-83/85. По правде говоря, Metacomco сделала кашу из ранних ФС, убивших ее простую и легкую структуру. Сперва OFS называлась просто Amiga File System. Название изменили с появлением «новой» Fast File System, созданной в 1987 для той же платформы.
- ↑ Microsoft впервые представила FAT32 в Windows 95 OSR2 (OEM Service Release 2) и впоследствии в Windows 98.
- ↑ 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 2 Это ограничения на структуры входа на-диске каталога непосредственно. Специфические Устанавливаемые драйверы Файловой системы могут разместить собственные ограничения на названия{имена} каталога и файл; и частность и операционные системы могут также разместить собственные ограничения, поперек всего файловых систем. MS DOS, Microsoft Windows, и OS/2 отвергают символы \ / : ? * » > < | и NUL в названии файлов и каталогов на протяжении всех файловых систем. Аналогично, версии операционной системы UNIX и Linux отвергают символы / и NUL.
- ↑ 1 2 3 4 5 Для файловых систем с переменным размером единицы размещения (блока/кластера) приведён диапазон размеров, показывающий максимальные размеры тома для минимально и максимально возможного размера единицы размещения файловой системы (напр., 512 байт и 128 КиБ для FAT — таков диапазон размера кластера, позволяемый структурами данных на диске, хотя некоторые драйверы устанавливаемых файловых систем и операционные системы не поддерживают размеры кластеров, большие 32 КиБ).
- ↑ 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 (маркёр стёртого файла). Короткие имена также обычно не содержат символы нижнего регистра.
- ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 В этих файловых системах элементы каталога с именами «.» и «..» имеют особенное значение. Элементы с этими именами не запрещены, и на самом деле существуют как обычные элементы каталога в структурах данных на диске. Однако, эти элементы должны обязательно присутствовать в каталоге и иметь вышеуказанные значения. Эти элементы автоматически создаются в каждом создаваемом каталоге и каталоги без них считаются испорченными
- ↑ 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.
- ↑ Действительный максимум был 8 847 360 байт, с 7 singly-indirect блоками и 1 doubly-indirect блоком; Вариант PWB/UNIX 1.0 использовал 8 singly-indirect блоков, достигая максимума в 524 288 байт или в половину MiB.
- ↑ Действительный максимум был 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.
- ↑ Большой раздел FAT32, будучи созданным, может работать нормально, но некоторые программы не позволяют создавать раздел FAT32 более 32GiB. К ним относится и программа установки Windows XP. Используйте команду FDISK с диска восстановления Windows ME (Emergency Boot Disk), для обхода этого ограничения.
- ↑ Это — предел структур «на-диске». Устанавливаемый драйвер Файловой системы HPFS для OS/2 использует высшие 5 битов номера сектора тома для его собственного использования, ограничивая размер тома до 64 ГБ.
- ↑ www.linux-ntfs.org — NTFS Documentation (single HTML file)
- ↑ 1 2 Это ограничение дисковых структур. драйвер NTFS для Windows NT ограничивает размер поддерживаемого тома до 256 TiB, а размер файла — до 16 TiB соответственно.
- ↑ HFS, устаревшая версия HFS+, поддерживает только 31‐символьные имена файлов; более старые приложения обычно не работают с именами такой длины.
- ↑ HFS+ поддерживает использование escape-последовательностей, чтобы работать с Unicode. Пользователи старого программного обеспечения могут увидеть escape-последовательности вместо символов.
- ↑ Однократно задаётся специальной программой setfnsize.
- ↑ ReiserFS теоретически может иметь размер файлов в 1 ЭиБ, но «предел в 8 ТиБ появился на данный момент в результате применения 32‐битной архитектуры распределения страничного кэша»[1]
- ↑ 1 2 XFS имеет ограничение в Linux 2.4 на 64 ТиБ размер файлов и 2 ТиБ размер файловой системы. Этого ограничения нет в системе IRIX.
- ↑ Сильно варьирует в зависимости от размера блока и фрагментации групп размещения блоков.
- ↑ 1 2 NSS позволяет файлам иметь множественные названия, в отдельном именном пространстве.
- ↑ Некоторые пространства имен имели меньшие ограничения по длине имени. В «LONG» был лимит в 80 байт, в «NTFS» 80 байт, в «NFS» 40 байт и в «DOS» подразумевались имена типа 8.3.
- ↑ Максимальная общая длина имени файла/расширения составляет 236 байт; некоторые компоненты имеют собственную максимальную длину в 255 байт.
- ↑ Максимальная длина имени пути — 4096 байтов, но предел на индивидуальных компонентах составляют в целом 1664 байта.
- ↑ Это ограничение может быть снято в более новых версиях.
- ↑ Значение вычислено на основании 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 2 3 Драйверы FAT12 и FAT16 в OS/2 и Windows NT поддерживают расширенные атрибуты (используя псевдофайл «EA DATA. SF», чтобы занять для них кластеры для них). Драйверы для других операционных систем их не поддерживают.
- ↑ F-node содержит поле идентификатора пользователя. Это не используется нигде, кроме OS/2 Warp Server.
- ↑ Списки контроля доступа NTFS могут описывать любой способ доступа в стиле POSIX, но использование POSIX-подобного интерфейса не поддерживаются без дополнения «Сервисов для UNIX» или Cygwin.
- ↑ 1 2 3 4 Списки контроля доступа и Мак-метки наслоены наверху расширенных атрибутов.
- ↑ Некоторые операционные системы осуществили расширенные атрибуты как слой по UFS1 с параллельным поддерживанием файлов (например, FreeBSD 4.x).
- ↑ 1 2 3 4 5 6 7 8 9 10 Некоторые устанавливаемые драйверы файловой систем и операционные системы не могут поддержать расширенные атрибуты, списки контроля доступа или защищённые метки на этих файловых системах. Ядра Linux до 2.6.x могут или пропускать поддержку их в целом или требовать патча.
- ↑ 1 2 3 4 5 6 Местное время, смещение по часовым поясам/UTC, и дата получено из параметров настройки времени ссылок/single timesync source in the NDS tree.
- ↑ 1 2 Novell называет эту особенность «множественные потоки данных». В опубликованных спецификациях говорится, что NWFS разрешает до 16 атрибутов и 10 потоков данных, и NSS разрешает неограниченные количества для обоих.
- ↑ Некоторые метаданные файлов и каталогов сохранены на сервере Netware независимо от того, установлены ли Сервисы директорий или нет, подобно дате/времени создания, размеру файла, состояния чистки, и так далее; и некоторые метаданные файлов и каталогов сохранённые в NDS/eDirectory, подобно разрешению доступа, монопольному использованию, и т. д.
- ↑ Ошибка в сносках?: Неверный тег
<ref>
; для сносокref29
не указан текст - ↑ Атрибуты сервисов управлениев записями (RMS) включают тип и размер записи среди многих других.
- ↑ Атрибуты доступа файлов в 9P являются вариантом традиционных атрибутов доступа Unix с незначительными отличиями, например suid bit заменён новым атрибутом — эксклюзивный доступ (англ. exclusive access).
- ↑ «Расширенные атрибуты» 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 |
- Примечания
- ↑ System V Release 4, и некоторые другие Unix-системы, модифицировали свои версии файловой системы Version 7 Unix для поддержки символических ссылок, хотя оригинальная версия такой возможностью не обладала.
- ↑ Ошибка в сносках?: Неверный тег
<ref>
; для сносокref60
не указан текст - ↑ NTFS 3.0 (Windows NT 5.0) и выше может создавать связывания, которые позволяют монтировать отдельные каталоги (но не файлы!) в любое место дерева каталогов локально управляемого диска. Связывания реализованы через так называемые reparse points, которые позволяют расширить обычный процесс разрешения файловых имён гибким способом.
- ↑ Журналирование собственно данных, в отличие от метаданных (что было всегда), появилось в Windows Vista и называется TxF. Эта возможность, помимо повышения устойчивости к сбоям, поддерживает откаты транзакций на файлах, а также объединение операций с файлами, реестрами и базами данных в одну ACID транзакцию.
- ↑ http://support.microsoft.com/kb/100625 — В рамках POSIX-приложений да, в рамках Win32-приложений нет.
- ↑ Снапшоты поддерживаются не самой NTFS, которая сама по себе не имеет ровно никаких средств их поддержки в своих метаданных, а нижележащим драйвером VolSnap.sys, и потому не зависят от типа FS и поддерживаются для FAT. Тем не менее, системные данные снапшота могут храниться только на NTFS томе, потому при снапшоте FAT тома его системные данные хранятся на другом томе.
- ↑ Журналирование только метаданных было представлено в драйвере HFS+ Mac OS 10.2.2; журналирование по умолчанию было включено в Mac OS 10.3 и более поздних.
- ↑ Отключено по умолчанию.
- ↑ 1 2 3 UDF и LFS (log-structured file system) являются файловыми системами с журнальным структурированием и ведут себя как будто вся файловая система является журналом. Неверно: UDF может использоваться в таком режиме, но это не обязательно
- ↑ 1 2 По умолчанию отключено.
- ↑ Полное журналирование блоков в ReiserFS было добавлено в Linux 2.6.8.
- ↑ В ОС IRIX возможно необязательное игнорирование регистра букв имён файлов в XFS.
- ↑ Некоторые драйверы устанавливаемых файловых систем и операционные системы могут не поддерживать регистрозависимость JFS. В частности, OS/2 вообще не поддерживает, а в Linux существует опция монтирования, отключающая регистрозависимость.
- ↑ 1 2 3 4 Чувствительность к регистру/Сохранение зависит от клиента. Windows, DOS, и клиенты OS/2 не замечают/сохраняют различия между разным регистром, тогда как клиенты, обращающиеся через NFS или AFP могут.
- ↑ 1 2 Логи и время изменения файла и другие метаданные файловой системы — часть обширного набора программ поддержки аудитинга встроенного в NDS/eDirectory — NSure Audit. (Filesystem Events tracked by NSure)
- ↑ 1 2 Доступно только в пространстве имён «NFS».
- ↑ 1 2 Это передаётся как «алиасы».
- ↑ 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 2 Переменный размер блока относится к системам, поддерживающим переменную длину блока пофайлово. (Аналогично extent, но это несколько иная реализация.) В настоящий момент UFS2 поддерживает такой вариант в режиме только для чтения.
- ↑ 1 2 3 DoubleSpace в DOS 6, и DriveSpace в Windows 95 и Windows 98 предоставлял схемы сжатия данных для FAT; в данное время не поддерживается Microsoft.
- ↑ 1 2 3 4 Так же поддерживаются и другие варианты соотношений блок: фрагмент; Большинство реализаций рекомендуют соотношение 8:1.
- ↑ e2compr, набор патчей реализующих поблочное сжатие для ext2, доступен с 1997, но его никогда не включали в основное ядро Linux.
- ↑ 1 2 В ext2 и ext3 предполагалась поддержка фрагментов, однако она так и не была реализована.
- ↑ 1 2 Reiser4 включает сжатие данных, но это не представлено в VFS API. Reiser4 поддерживает прозрачное сжатие и шифрование с плагином cryptcompress который идёт в комплекте с версией 4.1.
- ↑ В «расширенном» режиме.
- ↑ Подвыделение блоков делит устройство хранения на блоки от 4 KiB до 64 KiB (обычно 8 KiB), и если блок не используется целиком, остаток снова делится на 512-байтные подблоки для других файлов, обычно небольшого размера.
- ↑ Присутствует в зависимости от реализации 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 (англ.) — Средство тестирования производительности ФС.
Many Windows applications (e.g., almost all .NET apps) cannot open paths more than 260 characters in length. I am batch renaming a list of podcast files. I want to name each file after the title of the episode, but the titles are up to 100 characters long. This means that if a user saves the file in a deep directory with a very long path, they may hit the limit and be unable to open the file in those other applications.
Is it acceptable for my program to put out file names this long, and leave it to the user to deal with very long paths when it comes up? iTunes crops at 40 chars, but that seems very conservative.
Thanks to Ben Voigt for clarifying that this only applies to certain apps.
asked Dec 29, 2011 at 23:43
AlexAlex
2352 silver badges10 bronze badges
4
Windows does NOT have a limit of 255 characters for file paths.
CreateFileA
has a limit of 260 characters. CreateFileW
supports names up to about 32760 characters (64kB).
Some filesystems impose additional limits on the maximum directory nesting level, or the maximum length of each part.
You’re probably thinking of certain popular Windows programs that have a 255 character limit, but accommodating those with a warning or user-configurable setting is probably more appropriate than adding your own hard limit.
answered Dec 29, 2011 at 23:51
Ben VoigtBen Voigt
279k43 gold badges421 silver badges720 bronze badges
2
Well I remember having an USB that didn’t support more than 32 characters in the filename (can’t remember which FS it had). I also just found this link on Google: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
Character count limitations can also be different and can vary depending on the file system and path name prefix format used. This is further complicated by support for backward compatibility mechanisms. For example, the older MS-DOS FAT file system supports a maximum of 8 characters for the base file name and 3 characters for the extension, for a total of 12 characters including the dot separator. This is commonly known as an 8.3 file name. The Windows FAT and NTFS file systems are not limited to 8.3 file names, because they have long file name support, but they still support the 8.3 version of long file names.
answered Dec 29, 2011 at 23:53
TixzTixz
1351 silver badge8 bronze badges