Укажите полный путь для файла установки с атрибутами

Обновлено: 01.07.2024

Управление файлами.

Управление файлами в Windows XP осуществляется при помощи программы Проводник или папки Мой компьютер и сводится к выполнению следующих операций:

  • копирование, перемещение и удаление файлов (не рассматриваются в данном курсе);
  • установка стандартных атрибутов;
  • установка дополнительных атрибутов;
  • назначение разрешений.

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

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

Установка стандартных атрибутов файлов и папок.

Стандартные атрибуты файлов и папок являются устаревшим примитивным средством управления доступом к файлам и папкам. В Windows XP и других современных операционных системах существуют гораздо более гибкие и удобные механизмы для управления файлами.

Стандартные атрибуты файлов и папок устанавливаются на вкладке Общие окна свойств. Вид этой вкладки для файлов и папок во многом идентичен:

Свойства папки


Свойства файла


На вкладке Общие вы можете узнать:

  • реальный и занимаемый на диске размер файла или папки;
  • количество файлов и вложенных папок (для папки);
  • дату и время создания, дату и время последнего изменения и открытия (для файла).

Кроме того, при помощи флажков на этой вкладке устанавливается два стандартных атрибута Только для чтения и Скрытый. Вообще, Windows XP, как и любая другая ОС Microsoft поддерживает четыре стандартных атрибута для файлов и папок, расположенных на файловых системах FAT, FAT32 и NTFS.

Атрибут

Описание

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

Только для чтения

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

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

Указывает, что файл или папка являются системными. В Windows 2000 используется только для обратной совместимости с MS-DOS, Windows 3.x и Windows 9x. Этим атрибутом помечены файлы, используемые для загрузки Windows 2000, в корневом каталоге системного и загрузочного дисков. Не может быть изменен через графические инструменты Windows 2000, но может быть изменен через командную строку или программами третьих производителей.


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

Изменение стандартных атрибутов из командной строки.

Для изменения стандартных атрибутов файлов и папок из командной строки служит команда attrib, которая имеет следующий синтаксис:

attrib[.exe] [+r|-r] [+a|-a] [+s|-s] [+h|-h] [[диск:][путь]имя_файла] [/s[/d]]

Описание ключей команды attrib:

Ключ

Описание

Устанавливает атрибут "только для чтения"

Снимает атрибут "только для чтения"

Устанавливает атрибут "архивный"

Снимает атрибут "архивный"

Устанавливает атрибут "системный"

Снимает атрибут "системный"

Устанавливает атрибут "скрытый"

Снимает атрибут "скрытый"

Задает местоположение папки и файла (файлов), атрибуты которых должны быть изменены. Допускается применение подстановочных символов ? и *

Задает обработку подходящих файлов в указанной папке и всех вложенных папках

Указывает, что нужно обрабатывать не только файлы, удовлетворяющие параметру имя_файла , но и папки, удовлетворяющие тому же условию

Для смены атрибутов у файлов и папок с установленным атрибутом "системный" или "скрытый" необходимо предварительно снять эти атрибуты.

Установка дополнительных атрибутов.

В Windows NT, 2000, а затем и в Windows XP к стандартным атрибутам файлов и папок были добавлены новые атрибуты, названные дополнительными. Все эти атрибуты могут быть установлены только для файлов и папок, расположенных на томах NTFS. Файловые системы FAT и FAT32 не поддерживают дополнительные атрибуты.

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

Дополнительные атрибуты папки


Дополнительные атрибуты файла


Рассмотрим дополнительные атрибуты подробнее.

Атрибут

Описание

Папка (файл) готова для архивирования

Является стандартным атрибутом "архивный", который описан выше

Разрешить индексирование папки (содержимого) для быстрого поиска

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

Сжимать содержимое для экономии места на диске

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

Шифровать содержимое для защиты данных

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

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

Шифрование файлов.

Шифрованная файловая система (Encrypting File System, EFS) поддерживает шифрование файлов, хранимых на томах NTFS. Шифрование в EFS базируется на технологии открытого ключа и обеспечивается интегрированной в систему службой. Это позволяет:

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

Пользователь, обладающий закрытым ключом к зашифрованному файлу, может открывать этот файл и работать с ним, как с обычным документом - расшифровывание будет производиться системой автоматически. Пользователю, не имеющего такого ключа, файл не доступен.
При работе с шифрованными файлами Windows XP поддерживает безопасность на должном уровне. Это означает, что шифруются все рабочие копии файла. При необходимости Вы можете осуществить шифрование и временных файлов. Данные зашифрованных файлов не сохраняются в файле подкачки. Все это гарантирует, что данные зашифрованного файла не появятся на диске в расшифрованном виде.
Кроме того, EFS содержит специальный механизм, предназначенный для восстановления доступа к шифрованным файлам в случае утери закрытого ключа. Это может произойти при удалении сертификата или пользователя, которому этот сертификат принадлежал. Механизм восстановления доступа к зашифрованным данным осуществляется специальным агентом восстановления, параметры которого определяются групповыми политиками. В общем случае работа агента сводится к предоставлению специального ключа, который может быть использован для расшифровывания файла. Пользователи, имеющие право восстанавливать данные, зашифрованные другими пользователями, определяются в групповых политиках.

Шифрованная файловая система может использоваться для шифрования файлов, расположенных на других компьютерах. Однако данные в этом случае передаются по сети в незашифрованном виде. При необходимости шифровать данные и при передаче по локальной сети необходимо использовать специализированные протоколы (SSL, IPSec и т.п.).

Для шифрования файла необходимо соблюдение следующих условий:

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

Процесс шифрования файла.

Механизм шифрации файлов заключается в следующем: на томе NTFS создается папка, которая будет зашифрована. Чтобы ее зашифровать, откройте окно Свойства для этой папки, на вкладке Общие нажмите кнопку Другие и включите флажок Шифровать содержимое для защиты данных. Все файлы, помещенные в эту папку будут зашифрованы, а сама папка помечена как зашифрованная. На самом деле шифруются только файлы в этой папке, а не сама папка.

Для фактического шифрования файла используются быстрые ключи симметричного шифрования. Для шифрования каждого блока файла используется отдельный симметричный ключ. Все симметричные ключи, использованные для шифрования файла, шифруются двумя ключами - открытым ключом пользователя и открытым ключом агента восстановления. В зашифрованном виде эти ключи сохраняются в полях Data Decryption Field (DDF) и Data Recovery Field (DRF).

Дешифрация.

Чтобы файл сделать незашифрованным отключите флажок Шифровать содержимое для защиты данных (Свойства файла -> Другие).

Использование агента восстановления.

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

На локальном компьютере агентом восстановления по умолчанию является локальный администратор. Если компьютер подключен к домену, то агентом восстановления по умолчанию является администратор домена.

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

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

Шифрование файлов из командной строки.

Все операции по шифрованию и расшифровыванию файлов также могут быть выполнены из командной строки при помощи утилиты cipher, которая имеет следующий синтаксис:

cipher[.exe] [/E|/D] [/S:папка] [/A] [/I] [/F] [/Q] [/H] [имя_файла[. ]]
cipher[.exe] /K
cipher[.exe] /W:папка

Описание ключей команды cipher:

Ключ

Описание

Шифрует указанные файлы и папки. При шифровании папок атрибуты устанавливаются таким образом, что все вновь добавляемые в папку файлы также будут шифроваться.

Расшифровывает указанные файлы и папки. При расшифровывании папок также расшифровываются все файлы в них.

Распространяет операцию на все вложенные папки, содержащиеся в указанной папке.

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

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

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

Во время процесса шифрования/расшифровывания выводит на экран только наиболее важную информацию.

Обрабатывает файлы с атрибутами "скрытый" и "системный". По умолчанию такие файлы не обрабатываются.

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

Создает для пользователя, запустившего cipher, новый ключ для шифрования файлов. При указании этого ключа все остальные ключи игнорируются.

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

Без параметров cipher отображает информацию о шифровании текущей папки и всех файлов, в ней содержащихся.

Отключение EFS.

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

Члены большинства типов в пространстве имен System.IO имеют параметр path , который позволяет указать абсолютный или относительный путь к ресурсу в файловой системе. Этот путь передается в API файловой системы Windows. В этом разделе рассматриваются форматы путей к файлам, которые можно использовать в операционных системах Windows.

Традиционные пути DOS

Стандартный путь DOS может состоять из трех компонентов:

  • Буква тома или диска, после которой следует разделитель томов ( : ).
  • Имя каталога. Символ разделителя каталогов служит для разделения подкаталогов во внутренней иерархии каталога.
  • Необязательное имя файла. Символ разделителя каталогов служит для разделения пути к файлу и его имени.

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

Путь Описание:
C:\Documents\Newsletters\Summer2018.pdf Абсолютный путь к файлу из корня диска C: .
\Program Files\Custom Utilities\StringFinder.exe Абсолютный путь из корня текущего диска.
2018\January.xlsx Относительный путь к файлу в подкаталоге текущего каталога.
..\Publications\TravelBrochure.pdf Относительный путь к файлу в каталоге, который является одноранговым для текущего каталога.
C:\Projects\apilibrary\apilibrary.sln Абсолютный путь к файлу из корня диска C: .
C:Projects\apilibrary\apilibrary.sln Относительный путь из текущего каталога диска C: .

Обратите внимание на различия между двумя последними путями. В обоих случаях задается необязательный описатель тома ( C: ), однако первый путь, в отличие от второго, начинается с корня указанного тома. В результате первый путь является абсолютным из корневого каталога диска C: , тогда как второй — относительным из текущего каталога C: . Использование второй формы пути в тех случаях, когда предполагается наличие первой, является распространенным источником ошибок, связанных с путями к файлам в Windows.

Чтобы определить, является ли путь к файлу полным (такой путь не зависит от текущего каталога и не изменяется при смене текущего каталога), можно вызвать метод Path.IsPathFullyQualified. Обратите внимание, что такой путь может включать сегменты с относительным путем к каталогу ( . и .. ), но при этом по-прежнему будет полным, если разрешенный путь всегда указывает на одно и то же место.

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

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

UNC-пути

UNC-пути (универсальное соглашение об именовании) используются для доступа к сетевым ресурсам и имеют следующий формат:

  • Имя сервера или узла, которому предшествуют символы \\ . В качестве имени сервера может выступать имя компьютера NetBIOS, а также IP-адрес или полное доменное имя (поддерживаются адреса IPv4 и IPv6).
  • Имя общего ресурса, которое отделяется от имени узла символами \ . Имя сервера и имя общего ресурса в совокупности образуют том.
  • Имя каталога. Символ разделителя каталогов служит для разделения подкаталогов во внутренней иерархии каталога.
  • Необязательное имя файла. Символ разделителя каталогов служит для разделения пути к файлу и его имени.

Ниже приводятся некоторые примеры UNC-путей:

Path Описание
\\system07\C$\ Корневой каталог диска C: на компьютере system07 .
\\Server2\Share\Test\Foo.txt Файл Foo.txt в тестовом каталоге тома \\Server2\Share .

UNC-пути всегда должны быть полными. Они могут включать сегменты с относительным путем к каталогу ( . и .. ), однако они должны быть частью полного пути. Использовать относительные пути можно только посредством сопоставления UNC-пути с буквой диска.

Пути к устройствам DOS

В операционной системе Windows используется унифицированная объектная модель, которая указывает на все ресурсы, включая файлы. Эти пути к объектам доступны из окна консоли и предоставляются на уровень Win32 с использованием специальной папки с символьными ссылками, с которыми сопоставляются устаревшие пути DOS и UNC. Доступ к этой специальной папке осуществляется с использованием синтаксиса пути к устройству DOS, который может иметь одну из приведенных ниже форм:

Помимо использования буквы диска, вы можете указать том с помощью его GUID. Синтаксис будет иметь вид:

Путь к устройству DOS состоит из следующих компонентов:

Описатель пути к устройству ( \\.\ или \\?\ ), который идентифицирует путь как путь к устройству DOS.

Символьная ссылка на "реальный" объект устройства (C: в случае имени диска или Volume в случае GUID тома).

Первый сегмент пути к устройству DOS после описателя пути к устройству идентифицирует том или диск. (Например, \\?\C:\ и \\.\BootPartition\ .)

Для UNC-путей существует специальная ссылка, которая называется UNC . Пример:

Для UNC-путей к устройствам часть сервера или общего сетевого ресурса образует том. Например, в пути \\?\server1\e:\utilities\\filecomparer\ часть server1\utilities представляет сервер или общий сетевой ресурс. Это важно при вызове такого метода, как Path.GetFullPath(String, String) с сегментами с относительным путем к каталогу, поскольку переход дальше тома невозможен.

Пути к устройствами DOS по определению являются полными. Сегменты с относительным путем к каталогу ( . и .. ) в них не допускаются. Они никогда не задаются относительно текущего каталога.

Пример. Способы задать ссылку на один и тот же файл

В следующем примере демонстрируются некоторые способы задать ссылку на файл с использованием API в пространстве имен System.IO. В этом примере создается экземпляр объекта FileInfo и используются его свойства Name и Length, чтобы отобразить имя и длину файла.

Нормализация путей

Практически все передаваемые в API Windows пути нормализуются. При нормализации в Windows выполняются следующие действия:

  • Идентифицируется путь.
  • Текущий каталог применяется к неполным (относительным) путям.
  • Выполняется канонизация разделителей каталогов.
  • Вычисляются относительные компоненты каталога ( . для текущего и .. для родительского каталога).
  • Удаляются некоторые символы.

Нормализация осуществляется неявно, но при необходимости вы можете выполнить ее явно, вызвав метод Path.GetFullPath, который создает оболочку для вызова функции GetFullPathName(). Также можно вызвать функцию GetFullPathName() Windows напрямую с помощью P/Invoke.

Идентификация пути

На первом шаге процесса нормализации осуществляется идентификация типа пути. Пути могут относиться к одной из нескольких категорий:

  • Пути к устройствам: начинаются с двух разделителей и знака вопроса или точки ( \\? или \\. ).
  • UNC-пути: начинаются с двух разделителей без знака вопроса или точки.
  • Полные пути DOS: начинаются с буквы диска, разделителя томов и компонентов ( C:\ ).
  • Пути к устаревшим устройствам ( CON , LPT1 ).
  • Пути относительно корня текущего диска: начинаются с одного разделителя компонентов ( \ ).
  • Пути относительно текущего каталога указанного диска: начинаются с буквы диска и разделителя томов, но не содержат разделителя компонентов ( C: ).
  • Пути относительно текущего каталога: начинаются с любых других символов ( temp\testfile.txt ).

Тип пути определяет, будет ли каким-либо образом применяться текущий каталог. Кроме того, от типа пути зависит применяемый корень.

Работа с устаревшими устройствами

Если путь указывает на устаревшее устройство DOS, например CON , COM1 или LPT1 , он преобразуется в путь к устройству путем добавления перед ним последовательности \\.\ и возвращается в таком виде.

Путь, который начинается с имени устаревшего устройства, всегда интерпретируется как путь к устаревшему устройству с помощью метода Path.GetFullPath(String). Например, путь к устройству DOS CON.TXT будет выглядеть как \\.\CON , а путь к устройству DOS COM1.TXT\file1.txt будет выглядеть как \\.\COM1 .

Применение текущего каталога

Если путь не является полным, система Windows применяет к нему текущий каталог. К UNC-путям и путям к устройствам текущий каталог не применяется. Также текущий каталог не применяется к полным путям к диску с разделителем C:\ .

Если путь начинается с одного разделителя компонентов, применяется диск текущего каталога. Например, для пути к файлу \utilities и текущего каталога C:\temp\ в результате нормализации будет получен путь C:\utilities .

Если путь начинается с буквы диска, разделителя томов и не содержит разделителя компонентов, применяется последний текущий каталог, установленный из командной оболочки. Если последний текущий каталог не был установлен, применяется диск сам по себе. Например, для пути D:sources , текущего каталога C:\Documents\ и последнего текущего каталога D:\sources\ на диске D: в результате будет получен путь D:\sources\sources . Пути, задаваемые относительно диска, являются распространенными источниками ошибок программ и логики скрипта. Предположение, что путь, начинающийся с буквы и двоеточия, не является относительным, очевидно неверно.

Если путь не начинается с разделителя, применяются текущий диск и текущий каталог. Например, для пути к файлу filecompare и текущего каталога C:\utilities\ в результате будет получен путь C:\utilities\filecompare\ .

Канонизация разделителей

Все символы косой черты ( / ) преобразуются в стандартные разделители Windows, то есть символы обратной косой черты ( \ ). Если они присутствуют, последовательность символов косой черты после первых двух таких символов свертывается в один символ косой черты.

Вычисление относительных компонентов

При обработке пути выполняется вычисление любых его компонентов или сегментов, которые состоят из одной или двух точек ( . или .. ):

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

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

Родительские каталоги удаляются только в том случае, если они не находятся после корня пути. Корень пути зависит от его типа. Это будет диск ( C:\ ) для путей DOS, сервер или общий сетевой ресурс для UNC-путей ( \\Server\Share ) и префикс пути к устройству для путей к устройствам ( \\?\ или \\.\ ).

Удаление знаков

Помимо удаленных ранее разделителей и относительных сегментов во время нормализации также удаляются некоторые дополнительные знаки:

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

Если путь не заканчивается разделителем, удаляются все конечные точки и пробелы (U+0020). Если последний сегмент содержит только одну или две точки, к нему применяется приведенное выше правило для относительных компонентов.

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

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

Пропуск нормализации

Как правило, любой путь, передаваемый в API Windows передается в функцию GetFullPathName и нормализуется. Существует одно важное исключение: путь к устройству, который начинается со знака вопроса, а не с точки. Если путь не начинается с последовательности \\?\ (обратите внимание на использование канонической формы с обратной косой чертой), он нормализуется.

Зачем нужно пропускать нормализацию? Существует три основных причины:

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

Повышение производительности за счет пропуска нормализации в тех случаях, когда нормализация уже выполнена.

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

Пути, начинающиеся с последовательности \\?\ , по-прежнему нормализуются, если явно передать их в функцию GetFullPathName.

Вы можете передавать пути длиной более MAX_PATH символов в функцию GetFullPathName без \\?\ . Она поддерживает пути произвольной длины, которая ограничивается лишь максимальным размером строки, поддерживаемым в Windows.

Регистр символов и файловая система Windows

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

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

Как посмотреть путь к файлу?

С помощью Shift


Например, путь к рабочему столу Windows 10 на моем компьютере имеет вид ⇒ C:\Users\Alex\Desktop, а к папке Temp ⇒ C:\Program Files (x86)\Temp

Через свойства папки или файла

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


Например путь к графическому изображению help.jpg

вместо ⇒

E:\Фотоматериалы и изображения\Иконки\help.jpg

будет выглядеть как ⇒

E:\Фотоматериалы и изображения\Иконки

Узнаем путь к файлу в командной строке Windows

  1. Открываем командную строку. Сделать это можно, нажав комбинацию клавиш Win+R и в открывшейся строке ввести cmd.
  2. Перетаскиваем иконку файла или папки в основное окно программы cmd.exe.
  3. Полный путь до файла будет скопирован в окно командной строки. Если это будет файл запуска, например exe, то при нажатии кнопки Ввод (Enter) запуститься программа.

Для примера создадим документ Word с именем Doc3 и поместим его в любую папку и посмотрим его путь в командной строке.

Путь до документа Doc3 в командной строке

Как скопировать путь к файлу на Mac

Пути к файлам и папкам на Маке можно узнать так же, как и в Виндовс через Shift, только названия кнопок другие ⇒

Как посмотреть путь к файлу на mac

В буфер обмена скопируется полный путь к файлу например ⇒

Скопировать полный путь до любого файла достаточно просто и с этим справится любой пользователь ПК или ноутбука.

Абсолютный и относительный пути

Путь (от англ. path) — набор символов, показывающий расположение файла или каталога в файловой системе.

Например, в следующей записи G:\EPIM Pro\Необходимые программы\ABBYY FineReader 10.0.102.95 Pro\readme.txt

readme.txt — это имя файла, а G:\EPIM Pro\Необходимые программы\ABBYY FineReader 10.0.102.95 Pro — путь к нему.

Полный (абсолютный) путь к файлу начинается с логического имени диска. Далее идут имена вложенных друг в друга папок (их может быть сколько угодно много). В последней папке содержится требуемый файл.

Стандартный путь состоит из трех компонентов ⇒

Если присутствуют все три компонента, путь является абсолютным. Полный путь всегда начинается с корневого каталога.

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

В следующей таблице показаны некоторые возможные пути к каталогам и файлам ⇒

Команда attrib предназначена для просмотра или изменения атрибутов файлов и папок через командную строку Windows. Данная программа доступна в Windows 10, Windows 7, Windows XP и в более старых версиях Windows. В данной статье мы рассмотрим синтаксис, параметры и примеры использования этой команды.

Синтаксис команды attrib

Синтаксис команды attrib выглядит следующим образом:

Как пользоваться командой attrib

Для того чтобы просмотреть атрибуты для всех файлов в текущей папке достаточно просто выполнить команду « attrib » без каких-либо параметров.

команда attrib

Для того чтобы получить информацию не только о файлах, но и папках, добавляем параметр « /d ».

атрибуты файлов и папок

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

просмотр атрибутов конкретного файла

Чтобы добавить какой-либо атрибут нужно указать соответствующий параметр со знаком « плюс ». Например, для того чтобы добавить « Только для чтение » нужно использовать « +r ». Удаление атрибута выполняется аналогичным способом, только со знаком минус.

добавить атрибут

При добавлении или удалении атрибутов для папок всегда нужно использовать параметр « /d ».

добавить атрибут для папок

Примеры использования attrib

При необходимости, с помощью команды «attrib» можно добавлять и удалять сразу несколько атрибутов за раз. Ниже приведено несколько примеров такого использования данной команды.

Добавляем атрибуты « Системный », « Скрытый », « Только для чтения » и для файла « c:\file.txt ».

Удаляем атрибуты « Системный », « Скрытый », « Только для чтения» для файла « c:\file.txt ».

Добавляем атрибуты « Системный », « Скрытый », « Только для чтения» для всех файлов в папке « c:\temp2 »

Удаляем атрибуты « Системный », « Скрытый », « Только для чтения» для всех файлов в папке « c:\temp2 »

Добавляем атрибуты « Системный », « Скрытый », « Только для чтения» для всех файлов и папок в папке « c:\temp2 »

Удаляем атрибуты « Системный », « Скрытый », « Только для чтения» для всех файлов и папок в папке « c:\temp2 »

Добавляем атрибуты « Системный », « Скрытый » для всех файлов и папок в папке « c:\temp2 », а также для всех вложенных папок и файлов.

Удаляем атрибуты « Системный », « Скрытый » для всех файлов и папок в папке « c:\temp2 », а также для всех вложенных папок и файлов.

Ошибки при использовании команды attrib

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

Еще одна возможная проблема – ошибка « Доступ запрещен ». В этом случае для изменения атрибутов нужно запустить командную строку с правами администратора либо изменить права доступа к данному файлу.


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

Что такое путь к файлу, каталогу, диску или веб-странице?

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

Пример почтового адреса

Так, например, в адресе указывается страна, город, улица, дом, корпус, квартира и имя жильца. Аналогия здесь такая:

  • страна – диск или удаленный сетевой ресурс;
  • имя жильца или адресата – название конечного файла;
  • все остальное – промежуточные подпапки.

Многие могут заметить, что в почтовом адресе указывается еще и индекс города. Его чисто условно можно соотнести, скажем, с IP-адресом страницы в Интернете или в сетевом окружении, поскольку для локальных ресурсов такие пути практически никогда не используются.

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

Типы путей

Но тут сразу стоит сделать еще одно небольшое отступление. При указании пути к любому объекту нужно учитывать, что они могут быть либо абсолютными (полными), либо относительными (сокращенными). Полные пути применяются для указания точного местоположения искомого объекта, а относительные предназначены для объектов, которые могут находиться в определенных папках, для которых указывать их расположение изначально не нужно (это чаще всего применяется в веб-программировании при создании ссылок для перехода к документу).

Как записывать путь к файлу в Windows-системах: общие правила

Но это все пока что была теория. Перейдем к практике.

Указание путь к файлу на локальном диске

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

Запись путей для веб-страниц

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

Указание пути к файлу в интернете

Как узнать, где находится файл?

Но очень часто можно встретить ситуации, когда абсолютный путь к нужному объекту вы не знаете, а его срочно нужно определить. Для этого можете воспользоваться «Проводником» и просто задать название файла в специальном поисковом поле или выполнить аналогичный поиск по расширению, вписав его после точки и заключив в звездочки.

Копирование абсолютного пути к папке в "Проводнике"

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

Путь к файлу в свойствах ярлыка

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

Методы быстрого копирования путей и открытия нужных файлов

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

Указание абсолютного пути к файлу в командной строке

Например, используя копирование, описанное выше, ссылки на абсолютные пути файлов можно вставлять в командную консоль, но при этом сам путь с обеих сторон должен заключаться в кавычки. Чтобы не заниматься такими вещами, можете просто перетащить нужный объект из «Проводника» в командную строку. Если это исполняемый файл программы, она запустится немедленно. Если же это какой-то документ, он будет автоматически открыт в сопоставленном ему приложении.

Напоследок остается добавить, что очень часто может потребоваться использовать консоль «Выполнить». В качестве простейших команд в ней вводятся именно названия исполняемых компонентов, для которых путь доступа к файлу и расширение запускаемого объекта очень часто указывать не нужно. Почему? Да только потому, что меню «Выполнить» в основном предназначено для вызова исполняемых апплетов (обычно EXE-формата и некоторых других), находящихся по умолчанию либо в директории System32, либо в каталоге Windows.

Указание относительного пути к файлу в меню "Выполнить"

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

Читайте также: