пятница, 27 марта 2009 г.

Не у всех коротких имён файлов есть тильда

Это перевод Not all short filenames contain a tilde. Автор: Реймонд Чен.

Я уверен, что все видели автоматически сгенерированные короткие имена для длинных имен файлов. Для длинного имени "Long name for file.txt", вы можете получить "LONGNA~1.txt", или, возможно, "LO18C9~1.txt", если в каталоге много коллизий.

Но вы можете не знать, что иногда там вообще нет тильды!

Каждая файловая система сама решает, как она хочет составлять короткие имена файлов. Windows 95 использует только метод "~N". Windows NT добавляет технику переполнения шестнадцатиричного хэша (hexadecimal hash overflow technique). Но некоторые файловые системы (например, Novell) просто обрезают имя. "Long name for file.txt" на сервере Novell будет просто "LONGNAME.TXT".

Так что не думайте, что все короткие имена содержат тильды. Они этого не делают. Это означает, что вам не следует пропускать вызов GetLongFileName, если вы не видите тильды в имени файла, поскольку такая "оптимизация" будет недействительна в сетях Novell.

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.