Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Длина имени файла, допустимые символы

Автор: Lillu
Дата сообщения: 14.03.2009 12:19
Какова должна быть оптимальная длина имени файла, какие символы целесообразнее использовать (а какие не использовать) при присвоении имени файлу, чтобы не возникало проблем при копировании на другие носители, просматривании под другими ОС (напр., Виста и ХР)?
А случилось следующее. Есть электронная библиотека с книгами в формате djvu, pdf. Имена фалов по схеме: Название - Авторы, год. Isbn (мои пометки). Переместила библиотеку на другой жесткий диск (оба NTFS). Что получилось: Часть файлов (в первую очередь с длинными именами, но некоторые и с не очень длинными) в папке отображаются, но ни открыть, ни переместить, ни переименовать или совершить другие действия нельзя, более того если посмотреть свойства папки содержащую этот файл, размер файла-призрака учитывать не будет. Далее переношу всю библиотеку обратно, все снова работает нормально. Копирую второй раз на 2 диск, получаю почти такую же картину, если длина имени более 80 знаков и выборочно более 50 (но теперь пострадали другие файлы). А мне еще записывать библиотеку на болванку, там то точно начнутся глюки…
Полагаю, что проблема может быть и из-за используемых символов, имена файлов формировались в ворде через макрос исходя из аннотации. Читала, что под DOS используется 8 символьное название файлов, но представляю возможным так сократить имена файлов без потери смысла..
Автор: BorlandIMHO
Дата сообщения: 14.03.2009 14:05
Lillu
Наиболее оптимально - использовать в названиях файлов только латиницу (A-Z, a-z), цифры (0-9) и символы ".", "-", "_". Длина имени файла - вопрос сугубый. Желательно, чтобы не превышала 64 символов вместе с полным путём (т.е. именами папок начиная с корня диска). В таком виде будет читаться практически на любых ОС с компакт-диска.
DOS - отдельная песня. Единственный выход, который кажется мне более-менее приемлемым - формировать названия файлов произвольным образом (например, просто по порядковым номерам) в формате 8.3, а рядом класть простой текстовый файлик в кодировке cp866 descript.ion (как вариант - FileID.diz или Index.txt, а то и все 3 сразу), в котором дано описание для каждого файлика. Формат этих файлов
Код: file0001.ext <Описание файла в одну строку>
....
file0999.ext <Описание файла в одну строку>
Автор: Lillu
Дата сообщения: 17.03.2009 10:52
BorlandIMHO
Спасибо за столь развернутый ответ.
И все же я не вижу возможным давать неинформативные имена (по порядковому номеру). Пусть будут короткими, но отражающими суть, т.е. формат 8.3 не устраивает. А ограничения по длине полного пути вместе с именем файла – это ограничения ОС или носителя? Т.е. какая длина для dvd, флешки, хр, висты, и где эту информацию можно посмотреть (что почитать), а как проконтролировать?
По поводу БД – эти идея интересная.

Цитата:
А для операционок с GUI опять же ничто не мешает поместить в корень диска index.htm, в котором дать сколь угодно развёрнутые описания книг (хоть с картинками) со ссылками на соответствующий файл.

А что это за возможность?

Цитата:
В принципе, каталогизатор БД можно поискать и готовый.

А где можно посмотреть?
Автор: vjunk
Дата сообщения: 19.03.2009 00:25
Ограниечения WIN32 API:
Полная длина пути для программ, не использующих специальные UNICODE функции - 256 символов.
Полная длина пути для программ с использованием специальных UNICODE функций - 32767 символов (такие функции и программы доступны только в системах класса NT - Windows 2000, XP, VIsta).
При этом программы могут обращаться к файлам, полный путь к которым имеет большую длину, но не напрямую, а через последовательный переход по каталогам.

Ограничения на длину имени файла/катлога в файловых системах:
FAT: 8.3 ASCII символов
FAT с поддержкой длинных имён: 255 UNICODE символов
NTFS: 255 UNICODE символов
ISO 9660 Level 1: 8.3 ASCII символов, глубина каталогов не более 8
ISO 9660 Level 2: 180 ASCII символов, глубина каталогов не более 8
ISO 9660+Joliet: 64 UNICODE символа, глубина каталогов не более 8
ISO 9660:1999: 207 ASCII символов, нет ограничения глубины каталогов (не поддерживается в Windows 9x)
UDF: 127 16-битных UNICODE символов, или 254 8-битных UNICODE символа (UTF8?)

В общем, лучше всего расчитывать на длину имени файла не более 64 символов, глубину вложенности каталогов не более 8, и полную длину пути не более 256 символов.
Автор: Gena1971
Дата сообщения: 19.03.2009 14:11
А для переноса проще всего упаковать все в один файлик. Для скорости можно даже без компрессии. Тогда уж точно имена файлов не повредятся.
А при записи на болванку длинные имена могут быть обрезаны до 64 символов. Разок сам с таким столкнулся при использовании какой то программы.
Часто бывает нечитабельный файл получается из-за того что в названии присутствует символ из других языков. В их системах он нормально читается, а у нас немного несовпадающий диапазон символов. Раньше то по моему и кирилицы не поддерживало в названиях файлов.

Страницы: 1

Предыдущая тема: Autorun в WinXP SP3


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.