FE57 File Inspector
Главная страница сайтаИнструкция по работе с программойЗагрузка программыРегистрация программыПриложение - дополнительные материалыОтсебячина - авторские заметкиКарта сайта
Гостевая книга

ДЛИННЫЕ  И  КОРОТКИЕ  ИМЕНА  ФАЙЛОВ

(empty)

На этой странице

На других страницах сайта

КОРОТКИЕ ИМЕНА DOS

В старые добрые времена в операционной системе DOS имена файлов были совсем простые. Эти имена могли состоять не более чем из восьми символов. К этому совсем короткому имени можно было добавить "расширение" - еще три символа. А чтобы сразу было видно, где кончается имя и начинается расширение, перед расширением ставилась точка. Такой формат имени так и назывался - "формат 8.3". В каталогах файловой системы такое имя занимало всего 11 байт. Совсем немного, и это хорошо, ведь память у персональных компьютеров в те времена была совсем коротенькая.

Для нашего разговора про имена файлов важно еще будет обратить внимание, что в именах с форматом 8.3 точка могла встретиться только один раз, а пробелы в имени вообще не допускались. И это очень правильно, насчет пробелов. Ведь ежели позволить вставлять пробелы внутри имени, то как же тогда было бы неудобно перечислить несколько имен файлов, например, в командной строке. (В командной строке в качестве разделителя используется пробел).

ДЛИННЫЕ ИМЕНА WINDOWS

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

Предельный размер для имени файла, который возможен в Windows, нигде не оговорен, по крайней мере, мне так и не удалось этого найти. Но вот длина для полного пути к файлу, в котором перед именем файла указаны все имена директорий и поддиректорий, эта длина имеет строгое ограничение. Программисты знают это ограничение как константу MAX_PATH, которая равна 260 (символов).

Пожалуй, стоит здесь привести какой-нибудь пример полного пути, в котором имя файла достаточно длинное, подобрать что-нибудь этакое с жесткого диска моего компьютера. Вот попались два файла с очень похожими именами:

E:\57\Executable modules\FE57 File Inspector ver.2.0.exe
E:\57\Executable modules\FE57 File Inspector ver.2.2.exe

КОРОТКИЕ АЛЬТЕРНАТИВНЫЕ ИМЕНА WINDOWS

В операционной системе Windows всегда стояла проблема "наследства": в новых версиях операционной системы должны оставаться работоспособными все программы, написанные для старых версий. В частности это значит, что те программы, которые были созданы для DOS, должны правильно работать под Windows. Поэтому для длинных имен файлов был придуман вариант с превращением этих длинных имен в короткие имена с форматом 8.3. Такие имена в Windows принято называть альтернативными.

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

Альтернативное имя составляется из первых символов основного имени. Если в некоторой директории есть несколько файлов с одинаковым началом основного имени, то альтернативные короткие имена будут отличаться цифрами в конце имени. Так короткий вариант имен для нашего примера получится такой:

E:\57\EXECUT~1\FE57FI~1.EXE
E:\57\EXECUT~1\FE57FI~2.EXE

КАК В WINDOWS КОРОТКИЕ ИМЕНА СВЯЗАНЫ С ДЛИННЫМИ

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

"... ver.2.0.exe"   FE57FI~1.EXE   127488
"... ver.2.2.exe"   FE57FI~2.EXE   129536

Проделаем такой опыт. Сначала получим через программу FE57 контрольные суммы для этих двух файлов. При этом в диалоге "Опции - Проверка файлов" мы сообщим программе, что нам необходимы короткие имена в получаемом файле данных. Итак, у нас есть файл данных, в котором для двух файлов, с которыми мы делаем опыт, записаны их имена (короткие), размеры и контрольные суммы.

Затем скопируем два наших файла в другую директорию. И теперь проверим через FE57 сохранность файлов после копирования. Для проверки мы используем полученный ранее файл с данными. В протоколе проверки мы увидим:

E:\57\PROBA\FE57FI~1.EXE       129536 - Длина не совпадает

        Прежняя длина   127488     Прежняя сумма  c4 dd 55 55 a3
        Сейчас  длина   129536     Сейчас  сумма  e0 c4 a9 86 1d

        Дата файла:  06.06.2004  22:33:34

E:\57\PROBA\FE57FI~2.EXE       127488 - Длина не совпадает

        Прежняя длина   129536     Прежняя сумма  e0 c4 a9 86 1d
        Сейчас  длина   127488     Сейчас  сумма  c4 dd 55 55 a3

        Дата файла:  28.07.2003  03:57:06

Нетрудно видеть, результат такой, что файлы почему-то поменялись местами.

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

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

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

БОЛЬШИЕ И МАЛЫЕ БУКВЫ В ИМЕНАХ

Эта заметка будет неполной, если ничего не сказать о больших и малых буквах в именах файлов и директорий.

В операционной системе Windows большие и малые буквы в именах файлов и директорий считаются одинаковыми. Для операционных систем семейства UNIX (в частности, для LINUX) традиция другая, там большие и малые буквы в именах - это разные буквы. На этом различии иногда спотыкаются начинающие разработчики сайтов, когда после переноса страничек со своего компьютера на веб-сервер у них вдруг перестают работать некоторые ссылки. Так как дома у большинства пользователей стоит Windows, а держатели серверов часто отдают предпочтение системе UNIX.

Windows сохраняет в каталоге файловой системы большие и малые буквы в именах файлов (и директорий) в том виде, как это было определено при создании файла. Но альтернативные короткие имена всегда состоят только из больших букв.

ЛОГИКА РАБОТЫ С ИМЕНАМИ В ПРОГРАММЕ FE57

В программе FE57 имеются настройки, определяющие правила работы с именами файлов и директорий.

Для большинства случаев практического применения программы FE57 можно эти настройки поставить в такое положение, какое показано на картинке ниже. И больше эти настройки никогда не трогать.

Первоначально, все эти тонкости пришлось в программе предусмотреть, чтобы обеспечить преемственность со старой DOS-овской версией программы. Но в дальнейшем оказалось, что такие настройки все же интересно в программе сохранить. Во-первых, это удобный способ разобраться с особенностями альтернативных коротких имен Windows. А во-вторых, короткие имена в протоколе обычно выглядят более аккуратно.

Ниже излагаются те правила, которые применяются в программе FE57 для работы с именами файлов и директорий. По этим правилам имена могут быть взяты либо из исходных данных, либо из каталога файловой системы. Когда имя берется из каталога, то может быть взято либо основное (длинное) имя, либо альтернативное (короткое) имя.

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

Альтернативное имя берется только в том случае, если Windows вообще такое имя создает. То есть, если основное имя по длине не укладывается в короткий формат 8.3, или если в основном имени есть пробелы, или если в основном имени есть более одной точки. В остальных случаях никакого альтернативного имени просто не существует.

Установка настроек производится в диалоге "Опции - Проверка файлов", во второй части этого диалога.

Во второй части этого диалога есть два переключателя, задающие правила работы с именами файлов и директорий.

Первый переключатель

  • Брать имена из старых данных
  • Брать имена из каталога файловой системы

Второй переключатель

  • Необходимы короткие имена
  • Разрешены длинные имена

Действует следующая логика при выборе имен

  1. Если включена опция "Брать имена из старых данных" и имя действительно есть в исходных данных, то имя берется в точности в том виде, как оно записано в исходных данных.
  2. Иначе, если имени нет в каталоге, то имя также берется из старых исходных данных. (Это относится к именам тех файлов и директорий, которые были удалены с диска).
  3. Иначе, если включена опция "Необходимы короткие имена", и в каталоге есть альтернативное имя, то берется альтернативное имя из каталога.
  4. Иначе берется основное имя из каталога.

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

Однако, у меня теперь есть где прочитать и все это быстро вспомнить ;-)



Главная | Инструкция | Загрузка | Регистрация | Приложение | Отсебячина | Карта сайта | Гостевая книга

  Rambler's Top100
Copyright (C) YasHome group, 2003, 2004, 2005
File created  - 08 Jun 2004
Last modified - 14 Oct 2004
Хостинг от uCoz