Для начал разберем, что из чего состоит имя файла.
Из Википедии:
Имя файла — строка символов, однозначно определяющая файл в некотором пространстве имён файловой системы (ФС).
Полное имя файла может состоять из:
- Протокола доступа к файлу (красное выделение) - по какому протоколу операционная система будет обращаться к файлу
- Имя или адрес хоста (синее) - если доступ к файлу осуществляется по сети
- Устройство или ФС (файловая система) в *nix системах (зеленое) - если файл расположен на локальной машине
- Путь к файлу или каталог (директория) (оранжевое) - это привычные для нас папки
- Имя файла (сиреневое) с расширением (серое) - собственно имя файла, расширение может отсутствовать
Так когда же ОС будет выдавать ошибку?
В Windows (файловая система NTFS) максимальная длина имени файла при работе из командной строки ограничивается 255 символами. В проводнике мне удалось создать файл полным именем в 502 символа с использованием кириллицы.
Для разных файловых систем существуют различные ограничения:
NTFS: 255 символов в кодировке UTF-16
FAT32: 255 символов при использовании формата 8.3 (PRORGA~1)
ext3/ext4: 255 байт (длина в символах зависит от кодировки)
zFS: 255 байт (UTF-8)
Указанные выше ограничения взяты из Википедии. Из личного опыта: на ext3 имена латиницей упирались в 254 символа, а с использованием кириллицы в 128.
Надеюсь данная информация поможет вам.
Лучшая благодарность от вас - это лайки, подписки и комментарии.
Спасибо!