Именование томов Windows


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



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

Для решения этой проблемы операционная система использует пути GUID для идентификации. Это строки такого вида:

"\\?\Volume{GUID}\"

где GUID - это глобальный уникальный идентификатор (GUID), идентифицирующий том.

Путь GUID иногда называют уникальным именем тома, поскольку путь GUID может ссылаться только на один том. Однако этот термин вводит в заблуждение, поскольку том может иметь несколько путей GUID.

Прификс "\\?\" отключает синтаксический анализ пути и не считается частью пути. Для получения дополнительной информации о "\\?\", смотрите статью о присвоении имени файлу или каталогу.

Вы должны указать полные пути при использовании путей GUID тома с "\\?\" префиксом.

Смонтированная папка - это связь между папкой на одном томе и другим томом, так что путь к папке можно использовать для доступа к тому. Например, если вы используете функцию SetVolumeMountPoint для создания подключенной папки, которая связывает том "D:\" с папкой "C:\MountD\", затем можно использовать любой путь ("D:\" или "C:\MountD\") для доступа к тому "D:\".

Точка монтирования тома - это любой путь пользовательского режима, который можно использовать для доступа к тому. Существует три типа точек монтирования томов:

  • Буква диска, например "C:\".
  • Путь GUID тома, например,"\\?\Volume{26a21bda-a627-11d7-9931-806e6f6e6963}\".
  • Смонтированная папка, например "C:\MountD\".
Для всех функций тома и подключенной папки, которые принимают путь GUID в качестве входного параметра, требуется обратная косая черта. Все функции тома и смонтированной папки, возвращающие путь GUID, предоставляют конечную обратную косую черту, но это не относится к функции CreateFile. Вы можете открыть том, вызвав CreateFile и опустить конечную обратную косую черту из указанного имени тома. CreateFile обрабатывает путь GUID тома с добавленной обратной косой чертой в качестве корневого каталога тома.

Операционная система Windows назначает путь GUID тому при первой установке и при форматировании. Функции тома и подключенной папки используют пути GUID для доступа к ним. Чтобы получить путь GUID тома для тома, используйте функцию GetVolumeNameForVolumeMountPoint.

Длина пути может быть проблемой при создании подключенной папки, которая связывает том с глубоким деревом каталогов с каталогом на другом томе. Это связано с тем, что путь тома связан с путем каталога. Глобально определенная константа MAX_PATH определяет максимальное количество символов, которое может иметь путь. (Дополнительные сведения о MAX_PATH смотри в статье) Вы можете обойти это ограничение, выполнив одно из следующих действий:

  • Обратитесь к томам по их путям GUID.
  • Используйте Unicode (W) версии файловых функций, которые поддерживают \\?\ префикс.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегистатьи IT, windows, файл, теория, файловая система




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




Примеры и виды игр из теории игр
Урок 4. Конструкторы и финализаторы C#
Как манипулируют фактами газетчики