Путь или маршрут к файлу это последовательность имен диска и каталогов разделенных символом
Члены большинства типов в пространстве имен System.IO имеют параметр path , который позволяет указать абсолютный или относительный путь к ресурсу в файловой системе. Этот путь передается в API файловой системы Windows. В этом разделе рассматриваются форматы путей к файлам, которые можно использовать в операционных системах Windows.
Пропуск нормализации
Как правило, любой путь, передаваемый в API Windows передается в функцию GetFullPathName и нормализуется. Существует одно важное исключение: путь к устройству, который начинается со знака вопроса, а не с точки. Если путь не начинается с последовательности \\?\ (обратите внимание на использование канонической формы с обратной косой чертой), он нормализуется.
Зачем нужно пропускать нормализацию? Существует три основных причины:
Получение путей, которые в обычных обстоятельствах недоступны, но являются допустимыми. Например, невозможно каким-либо иным способом получить доступ к файлу или каталогу с именем hidden. .
Повышение производительности за счет пропуска нормализации в тех случаях, когда нормализация уже выполнена.
Пропуск нормализации и проверки максимальной длины пути является единственным отличием между двумя видами синтаксиса путей к устройствам. В остальных аспектах они идентичны. Пропуск нормализации следует использовать с осторожностью, поскольку в этом случае легко получить пути, при работе с которыми в обычных приложениях будут возникать трудности.
Пути, начинающиеся с последовательности \\?\ , по-прежнему нормализуются, если явно передать их в функцию GetFullPathName.
Вы можете передавать пути длиной более MAX_PATH символов в функцию GetFullPathName без \\?\ . Она поддерживает пути произвольной длины, которая ограничивается лишь максимальным размером строки, поддерживаемым в Windows.
Полное имя файла
Полное имя файла имеет следующий вид:
Скобками обозначаются необязательные элементы. Таким образом, имя файла состоит из пути к каталогу, в котором находится файл, и имени файла, разделенных символом \, перед которыми может стоять обозначение дисковода.
Если дисковод не указан, то подразумевается текущий дисковод. Если путь не указан, то подразумевается текущий каталог. Полное имя файла полностью определяет, с каким файлом пользователь собирается работать.
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
Столичный центр образовательных технологий г. Москва
Получите квалификацию учитель математики за 2 месяца
от 3 170 руб. 1900 руб.
Количество часов 300 ч. / 600 ч.
Успеть записаться со скидкой
Форма обучения дистанционная
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
311 лекций для учителей,
воспитателей и психологов
Получите свидетельство
о просмотре прямо сейчас!
Файл – это поименованная область памяти на внешнем носителе, предназначенная для хранения информации.
Имя файла состоит из двух частей:
непосредствено имя файла (в ОС MS - DOS не более 8 символов, а в ОС Windows – до 255 символов);
расширение, указывающее на тип хранимой в файле информации (не более 3 символов)
В ОС MS - DOS имя файла может содержать только латинские буквы, цифры. В ОС Windows имя может состоять и из букв русского алфавита. Разрешено использовать в имени файлов следующие символы:
Расширение имени является не обязательным. Оно, как правило, описывает содержание файла, поэтому использование расширения весьма удобно. Многие программы устанавливают расширение имени фала и по нему можно узнать, какой программой он создан. Так, например:
. com , . exe – готовые к выполнению программы;
. bat – командные ( batch ) файлы;
. bak – копия файла, делаемая перед его изменением;
. pas – программы на языке Паскаль;
. for – программы на языке Фортран;
. c – программы на языке Си;
. asm – программы на языке Ассемблер;
. bas – программы на языке Бейсик;
. txt – текстовые файлы, не содержащие элементов форматирования (созданные в простейших текстовых редакторах, например Блокнот);
. doc – файл, созданный в текстовом процессоре MS Word ;
. bmp – (от анлг. bimap – массив битов или точечный рисунок) графический файл растрового изображения, состоящего из множества точек – пикселей (созданные в таких графических редакторах, как Paint , Free Hand, Adobe Photoshop);
. gif – формат графического файла, используемый для передачи по сети Интернет;
. awd – формат графического файла, используемый для передачи по факсу;
. tif , . eps – графические файлы для печатной продукции;
. jpg – ( Joint Photographic Experts Group ) формат сжатого графического файла, предназначенный для хранения графических файлов больших объемов.
Каталог (папка, директорий) – это специальное место на диске, в котором хранятся имена файлов, их тип, сведения о размере файлов, времени их последнего обновления, атрибуты (свойства) файлов и т.д.
Требования к именам каталогов те же, что и к именам файлов. Как правило, расширение для каталогов не используется.
На каждом внешнем носителе имеется один главный (корневой) каталог. В нем регистрируются файлы и подкаталоги (каталоги 1-го уровня). В каталогах 1-го уровня регистрируются файлы и каталоги 2-го уровня и т.д. Получается иерархическая древовидная структура каталогов на диске.
Корневые каталоги на внешних носителях именуются латинскими буквами с обязательным символом «:». Так, например:
А:, В: - корневые каталоги на гибких магнитных дисках;
С: - корневой каталог на жестком магнитном диске (винчестере);
D : - Z : - используются для обозначения корневых каталогов на ЖМД и лазерных дисках.
Каталог, с которым в настоящий момент работает пользователь, называется текущим.
Полное имя файла состоит из пути к файлу и имени самого файла. Путь к файлу – это последовательность из имен каталогов, разделенных символом «\», задающий маршрут от корневого или текущего каталога к тому каталогу, в котором находится нужный файл.
Примечание: во многих командах в именах файлов употребляются символы «*» и «?» для указания группы файлов из одного каталога.
Символ «*» обозначается любое число символов в имени файла или в расширении. Символ «?» обозначается один произвольный символ или отсутствие символа в имени файла или в расширении. Например:
*. doc – все файлы с расширением . doc ;
c *. d * - все файлы с именем, начинающимся с «с» и с расширением, начинающимся с « d »;
Маршрутом или путем по файловой системе называется обозначение, состоящее из имени накопителя и цепочки имен взаимно-подчиненных каталогов.
Любой из этих элементов в обозначении маршрута может отсутствовать.
Примеры записи маршрутов:
Маршрут всегда указывает на некоторый каталог, завершающий цепочку (в частности, на корневой или текущий каталог) и может использоваться, как префикс имени файла, указывающий его местонахождение. Префикс-маршрут отделяется от собственно имени файла разделителем "\".
Примеры имен файлов с префиксами:
Идентификация Логических дисков, Каталогов, Файлов осуществляется на базе имен.
В качестве имени логического диска используется одна из букв латинского алфавита(A..Z).
Каждый Файл или Каталог(кроме корневого) имеет ПОЛНОЕ имя.
ПОЛНОЕ Имя Файла(Каталога),кроме корневого, состоит из следующих частей(рис.8) :
- имя логического диска(A..Z),
- символ,идентифицирующий корневой каталог - "\" (Слэш),
- перечень “родительских” каталогов(разделенных символом "\"),
Собственно имя файла(каталога) состоит из :
- расширение имени файла
“Имя логического диска”+”двоеточие”+”идентиф.корневого каталога” +”весь перечень имен родительских каталогов” = маршрут доступа к файлу(каталогу). Максимальное кол-во символов в ПОЛНОМ имени файла = 78, Максимальное кол-во символов в имени файла = 8,
Максимальное кол-во символов в расширении имени файла = 3, Расширение НЕ обязательно т.е. может и НЕ присутствовать (в этом случае точка тоже отсутствует).
Рис.8
Таким образом размер собственно имени файла НЕ превышает 12 символов !
В ПОЛНОМ имени файла разрешается использовать только следующие
Примеры НЕ допустимых имен файлов : 123456789.txt aa?.doc 35*.? It.F.doc .txt
7. Шаблоны имен файлов
Символы подстановки в именах файлов :
Когда необходимо произвести какие-либо действия над файлами, пользователь вызывает определенные внутренние или внешние команды MS DOS и “передает” им,в качестве параметров, имена файлов. Очень часто приходится производить одни и те же действия над многими файлами. Например, необходимо скопировать ВСЕ файлы какого-либо каталога в другой каталог. Если файлов больше 200, то ровно 200 раз необходимо произвести эту операцию для каждого файла в отдельности. Это как минимум, слегка огорчает Пользователя. Для решения такого рода проблем существуют спец.средства, которые помогают производить однотипные операции над целой группой файлов за один “заход”.
Так называемые символы подстановки позволяют “фильтровать” файлы, используя их имена. К ним относятся символы : ? и * . Эти символы можно использовать в любом месте собственно имени
файла(имени и расширении). Символ ? означает, что команда(при фильтрации файлов) “признает”
любой символ в имени или расширении файла, в позиции которого находится символ ?.
Символ * означает, что команда(при фильтрации файлов) “признает” все символы, в имени или расширении файла, начиная с позиции, где находится символ *. Символы ? и * действуют не зависимо друг от друга применительно к имени или расширению.
ВЫПОЛНИТЬ ОПЕРАЦИЮ НАД СЛЕДУЮЩИМИ ГРУППАМИ ФАЙЛОВ :
*.* - все файлы, без исключения,
*.txt - файлы с любыми именами, но с расширением .txt,
II*.* - файлы, имена которых начинаются с цепочки символов II и имеющие любое расширение,
YE??0198.* - файлы, имена которых начинаются с цепочки символов YE, два следующих символа НЕ имеют значение, следующие четыре символа должны быть 0198, расширение НЕ имеет значение(применительно к расчетному отделу : все результаты расчетов по работнику
с табельным номером 0198).
Каждый Файл(Каталог) имеет атрибут, который указывает на то,
что этот файл является именно файлом; или на то, что он является
Файлы, в зависимости от атрибута, могут быть скрытыми, архивными
системными, только для чтения.(Скрытые файлы MS DOS “не видит”).
8. КОМАНДЫ ПОДДЕРЖКИ ФАЙЛОВ
Для работы с файловой системой в DOS имеются несколько
COPY, REN, DEL, TYPE, DIR,
Раздел: Информатика, программирование
Количество знаков с пробелами: 25445
Количество таблиц: 0
Количество изображений: 4
Регистр символов и файловая система Windows
Особенность файловой системы Windows заключается в том, что пользователи и разработчики, имеющие дело с другими операционными системами, могут сталкиваться с проблемами из-за того, что в именах каталогов и путях не учитывается регистр символов. Это значит, что в именах каталогов и файлов сохраняется регистр строк, используемый в момент их создания. Например, вызов метода
создает каталог с именем TeStDiReCtOrY. Если переименовать каталог или файл так, чтобы изменился регистр символов, в имени будет отражен регистр, используемый в момент переименования. Например, следующий код переименовывает файл test.txt в Test.txt:
Тем не менее при сравнении имен каталогов и файлов регистр символов не учитывается. Если выполнить поиск файла с именем "test.txt", API файловой системы .NET будут игнорировать регистр символов при сравнении. Таким образом, при поиске файла "test.txt" будут возвращены совпадения для файлов "Test.txt", "TEST.TXT", "test.TXT", а также любых других их вариантов с различным сочетанием букв в верхнем и нижнем регистре.
Информация на магнитных дисках хранится в файлах. Файл – это поименованная область на диске или другом машинном носителе. В файлах могут храниться тексты программ, документы, готовые к выполнению программы и т. д.
Часто файлы разделяют на две категории – текстовые и двоичные. Текстовые файлы предназначены для чтения человеком. Они состоят из строк символов, причем каждая строка оканчивается двумя специальными символами: "возврат каретки" (CR) и "новая строка" (LF). При редактировании и просмотре текстовых файлов эти специальные символы, как правило, не видны. В текстовых файлах хранятся тексты программ, команды файлов DOS и т. д. Файлы, не являющиеся текстовыми, называются двоичными.
Текстовый файл, содержащий только символы с кодами до 127 (т. е. не содержащий русских букв и псевдографических символов), называется ASCII-файлом.
Имя и расширение могут состоять из прописных и строчных латинских букв, цифр и символов:
Расширение имени файла является необязательным. Оно, как правило, описывает содержание файла, поэтому использование расширения весьма удобно. Многие программы устанавливают расширение имени файла, и по нему можно узнать, какая программа создала файл. Примеры расширений файлов приведены в табл. 1.1.
Таблица 1.1. Некоторые распространенные расширения файлов.
В имени и расширении имени файла прописные и строчные латинские буквы являются эквивалентными, так как DOS переводит все строчные буквы в соответствующие прописные буквы.
Имена файлов регистрируются на магнитных дисках в каталогах (или директориях). Каталог – это специальное место на диске, в котором хранятся имена файлов, сведения о размерах файлов, времени их последнего обновления, атрибуты (свойства) файлов и т. д. Если в каталоге хранится имя файла, то говорят, что этот файл находится в данном каталоге. На каждом магнитном диске может быть несколько каталогов. Любой каталог может содержать много файлов, но каждый файл всегда находится только в одном каталоге.
На каждом магнитном диске имеется один главный, или корневой, каталог. В нем регистрируются файлы и подкаталоги (каталоги 1-го уровня). В каталогах 1-го уровня регистрируются файлы и каталоги 2-го уровня и т. д. Получается иерархическая древообразная структура каталогов на магнитном диске.
Каталог, с которым в настоящий момент работает пользователь, называется текущим. Если в команде DOS указать имя файла, то этот файл будет создаваться или отыскиваться в текущем каталоге. Для вывода оглавления текущего каталога необходимо ввести команду Dir. Для смены текущего каталога имеется команда Cd.
Если используется файл не из текущего каталога, необходимо указать, в каком каталоге находится данный файл. Это делается с помощью указания пути к файлу. Путь – это последовательность из имен каталогов или символов. разделенных символом \. Этот путь задает маршрут от текущего каталога или от корневого каталога диска к тому каталогу, в котором находится нужный файл.
Вычисление относительных компонентов
При обработке пути выполняется вычисление любых его компонентов или сегментов, которые состоят из одной или двух точек ( . или .. ):
Если обнаруживается одна точка, текущий сегмент удаляется, поскольку он ссылается на текущий каталог.
Если обнаруживаются две точки, удаляются текущий и родительский сегмент, поскольку в этом случае задается ссылка на родительский каталог.
Родительские каталоги удаляются только в том случае, если они не находятся после корня пути. Корень пути зависит от его типа. Это будет диск ( C:\ ) для путей DOS, сервер или общий сетевой ресурс для UNC-путей ( \\Server\Share ) и префикс пути к устройству для путей к устройствам ( \\?\ или \\.\ ).
Канонизация разделителей
Все символы косой черты ( / ) преобразуются в стандартные разделители Windows, то есть символы обратной косой черты ( \ ). Если они присутствуют, последовательность символов косой черты после первых двух таких символов свертывается в один символ косой черты.
Пути к устройствам 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 являются полными по определению и не могут начинаться с относительным сегментом каталога ( . или .. ). Они никогда не задаются относительно текущего каталога.
Применение текущего каталога
Если путь не является полным, система Windows применяет к нему текущий каталог. К UNC-путям и путям к устройствам текущий каталог не применяется. Также текущий каталог не применяется к полным путям к диску с разделителем C:\ .
Если путь начинается с одного разделителя компонентов, применяется диск текущего каталога. Например, для пути к файлу \utilities и текущего каталога C:\temp\ в результате нормализации будет получен путь C:\utilities .
Если путь начинается с буквы диска, разделителя томов и не содержит разделителя компонентов, применяется последний текущий каталог, установленный из командной оболочки. Если последний текущий каталог не был установлен, применяется диск сам по себе. Например, для пути D:sources , текущего каталога C:\Documents\ и последнего текущего каталога D:\sources\ на диске D: в результате будет получен путь D:\sources\sources . Пути, задаваемые относительно диска, являются распространенными источниками ошибок программ и логики скрипта. Предположение, что путь, начинающийся с буквы и двоеточия, не является относительным, очевидно неверно.
Если путь не начинается с разделителя, применяются текущий диск и текущий каталог. Например, для пути к файлу filecompare и текущего каталога C:\utilities\ в результате будет получен путь C:\utilities\filecompare\ .
Работа с устаревшими устройствами
Если путь указывает на устаревшее устройство DOS, например CON , COM1 или LPT1 , он преобразуется в путь к устройству путем добавления перед ним последовательности \\.\ и возвращается в таком виде.
Путь, который начинается с имени устаревшего устройства, всегда интерпретируется как путь к устаревшему устройству с помощью метода Path.GetFullPath(String). Например, путь к устройству DOS CON.TXT будет выглядеть как \\.\CON , а путь к устройству DOS COM1.TXT\file1.txt будет выглядеть как \\.\COM1 .
UNC-пути
UNC-пути (универсальное соглашение об именовании) используются для доступа к сетевым ресурсам и имеют следующий формат:
- Имя сервера или узла, которому предшествуют символы \\ . В качестве имени сервера может выступать имя компьютера NetBIOS, а также IP-адрес или полное доменное имя (поддерживаются адреса IPv4 и IPv6).
- Имя общего ресурса, которое отделяется от имени узла символами \ . Имя сервера и имя общего ресурса в совокупности образуют том.
- Имя каталога. Символ разделителя каталогов служит для разделения подкаталогов во внутренней иерархии каталога.
- Необязательное имя файла. Символ разделителя каталогов служит для разделения пути к файлу и его имени.
Ниже приводятся некоторые примеры UNC-путей:
Path | Описание |
---|---|
\\system07\C$\ | Корневой каталог диска C: на компьютере system07 . |
\\Server2\Share\Test\Foo.txt | Файл Foo.txt в тестовом каталоге тома \\Server2\Share . |
UNC-пути всегда должны быть полными. Они могут включать сегменты с относительным путем к каталогу ( . и .. ), однако они должны быть частью полного пути. Использовать относительные пути можно только посредством сопоставления UNC-пути с буквой диска.
Имена накопителей на дисках
В компьютере обычно имеется несколько накопителей на магнитных дисках (дисководов). Для DOS накопители на магнитных дисках именуются: А:, В:, С: и т. д. Например, в компьютере могут быть два накопителя на гибких магнитных дисках А: и В: и один накопитель на жестком магнитном диске (винчестер) С:.
Текущий дисковод – это тот дисковод, с которым пользователь работает в настоящее время.
Нормализация путей
Практически все передаваемые в API Windows пути нормализуются. При нормализации в Windows выполняются следующие действия:
- Идентифицируется путь.
- Текущий каталог применяется к неполным (относительным) путям.
- Выполняется канонизация разделителей каталогов.
- Вычисляются относительные компоненты каталога ( . для текущего и .. для родительского каталога).
- Удаляются некоторые символы.
Нормализация происходит неявно, но ее можно выполнить явным образом, вызвав Path.GetFullPath метод, который создает оболочку для вызова функции жетфуллпаснаме (). Также можно вызвать функцию GetFullPathName() Windows напрямую с помощью P/Invoke.
Пример. Способы задать ссылку на один и тот же файл
В следующем примере демонстрируются некоторые способы задать ссылку на файл с использованием API в пространстве имен System.IO. В этом примере создается экземпляр объекта FileInfo и используются его свойства Name и Length, чтобы отобразить имя и длину файла.
Удаление знаков
Помимо удаленных ранее разделителей и относительных сегментов во время нормализации также удаляются некоторые дополнительные знаки:
Если сегмент заканчивается одной точкой, эта точка удаляется. (Сегмент одной или двойной точки нормализован на предыдущем шаге. Сегмент из трех или более периодов не нормализован и действительно является допустимым именем файла или каталога.)
Если путь не заканчивается разделителем, удаляются все конечные точки и пробелы (U+0020). Если последний сегмент содержит только одну или две точки, к нему применяется приведенное выше правило для относительных компонентов.
Это правило устанавливает, что вы можете создать имя каталога с конечным пробелом, добавив разделитель после пробела.
Создавать имена каталогов или файлов с конечным пробелом нельзя. Наличие конечных пробелов может затруднить или исключить возможность доступа к каталогу. В связи с этим при попытке обработать каталоги или файлы, имена которых содержат конечные пробелы, происходит сбой приложения.
Идентификация пути
На первом шаге процесса нормализации осуществляется идентификация типа пути. Пути могут относиться к одной из нескольких категорий:
- Пути к устройствам: начинаются с двух разделителей и знака вопроса или точки ( \\? или \\. ).
- UNC-пути: начинаются с двух разделителей без знака вопроса или точки.
- Полные пути DOS: начинаются с буквы диска, разделителя томов и компонентов ( C:\ ).
- Пути к устаревшим устройствам ( CON , LPT1 ).
- Пути относительно корня текущего диска: начинаются с одного разделителя компонентов ( \ ).
- Пути относительно текущего каталога указанного диска: начинаются с буквы диска и разделителя томов, но не содержат разделителя компонентов ( C: ).
- Пути относительно текущего каталога: начинаются с любых других символов ( temp\testfile.txt ).
Тип пути определяет, будет ли каким-либо образом применяться текущий каталог. Кроме того, от типа пути зависит применяемый корень.
Похожие работы
. 1.2.2 Операционная система MS-DOS MS-DOS - однопользовательская, однозадачная ОС, обеспечивающая взаимодействие пользователя с компьютером с помощью команд, вводимых пользователем (интерфейс командной строки). Функциональные части: -файловая система (совокупность средств ОС, обеспечивающих доступ к данным); -драйверы (программы, управляющие работой внешних устройств); -командный .
. работоспособных драйверов, доступных системным и прикладным программам. Если работающей программе необходим контакт с переферийным устройством, то она сообщает операционной системе, какое из устройств ей необходимо, и MS-DOS предоставляет ей соответствующий драйвер. Устройства посимвольной и поблочной передачи данных Устройства посимвольной передачи данных осуществляют пересылку информации .
. , с помощью команды del *.*, то DOS спросит: Are you sure (Y/N)? (Вы уверены?) Для удаления файлов надо нажать Y и Enter, для отмены команды – N и Enter. Запрос подтверждения. Операционная система MS DOS, начиная с версии 6.0, может запрашивать подтверждение удаления каждого файла. Для этого в команде del надо использовать режим /p. В этом случае перед удалением каждого файла на экран будет .
Основой построения и работы MS DOS является файловая структура хранимой информации и возможность каталогизации этих файлов.
Файл (file) – это поименованная область памяти на диске. Файлы MS DOS можно разделить на две категории: текстовые (для хранения информации в символьном виде) и двоичные (все остальные).
Каждый файл имеет имя. Полное имя файла обычно состоит из двух частей – собственно имени (префикса) и расширения (суффикса).
Имя файла (префикс) может содержать от 1 до 8 символов, расширение (суффикс) – от 0 до 3 символов (т. е. расширение является необязательным). Имя отделяется от расширения точкой.
Некоторые имена файлов являются запрещенными, так как MS DOS воспринимает их как имена устройств:
AUX – устройство, подключенное к основному коммуникационному каналу параллельного обмена;
COM1, COM2, COM3 – устройства, подключенные соответственно к 1, 2, 3-му коммуникационным каналам последовательного обмена;
LPT1, LPT2, LPT3 – устройства, подключенные к 1, 2, 3-му параллельным каналам (обычно принтеры);
CON – используется для вывода на экран и ввода с клавиатуры (т. е. клавиатура при вводе, экран при выводе);
PRN – принтер.
NUL – "пустое" устройство (используется, когда создание файла нежелательно, но синтаксис командной строки требует наличия имени входного или выходного файла).
Наличие расширения в имени файла не является обязательным. Как правило, расширение используется для описания типа информации, записанной в файле, т. е. для описания типа файла.
Общепринято, что расширение имени файла обозначает его тип. Обычно применяют следующие стандартные расширения имен:
gays.bas – программа на языке Бейсик;
prog.pas – программа на языке Pascal;
sos.bat – командный файл операционной системы;
doclad.txt – текстовой файл;
ct1.exe – перемещаемая программа, готовая к выполнению;
bio.c – исходная программа на языке Си;
mak.lib – библиотека программ;
p1.obj – скомпилированная объектная программа на машинном языке;
bumpy.gm – игровая программа;
tvir.doc – файл документов (обычно создаваемых с помощью текстовых редакторов).
При создании файла или изменении его содержимого автоматически регистрируются дата и время, снятые с текущих показаний календаря и часов системы.
Имя, тип, дата и время являются атрибутами файла, которые фиксируются на диске .
Кроме этих характеристик, на диске фиксируются также следующие атрибуты файлов:
Archive – архивный;
Hidden – скрытый (такие файлы не отображаются на экране при просмотре);
Read-only – файл, доступный только для чтения (такой файл нельзя удалить или отредактировать);
System – системный (входящий в состав операционной системы).
Каталог (Directory) файлов предназначен для упорядочивания информации на диске.
Каталоги облегчают работу пользователя, помогают ему сориентироваться в большом объеме разнородной информации, обычно размещаемой во внешней памяти компьютера.
Каталог – это группа файлов на одном носителе, объединенных по какому-либо критерию (обычно логически взаимосвязанных).
Каталог, в котором в настоящий момент работает пользователь, называется текущим.
Цепочки подчиненных (включенных друг в друга) каталогов обозначаются их именами, разделенными знаком \. Если этот знак стоит перед первым именем, значит, "выше" по иерархии находится только корневой каталог.
Примеры цепочек подчиненных каталогов:
\DOC – DOC находится на 1-м уровне;
\TP6\TL – TL находится на 2-м уровне;
Если команде MS DOS указать имя файла, то поиск или создание файла будет производиться в текущем каталоге.
Если необходимо использовать файл не из текущего каталога, то следует указать, где этот файл находится.
Это делается с помощью указания пути к файлу.
Путь (Path) – это последовательность из имен каталогов и символов "..", разделенных символом "\".
Путь задает маршрут поиска файла от текущего каталога или корневого каталога к тому каталогу, в котором находится нужный файл.
Полный путь включает также и имя накопителя (диски, устройства, дисководы).
Накопители (внешние накопители, диски, устройства) именуются латинскими буквами A, B, C и т. д., вслед за которыми пишут двоеточие.
Например: A:,B:,C:.
Сочетание имени устройства и символа ":" (двоеточие) является указателем устройства.
Обычно имена накопителей распределяют следующим образом:
A: – соответствует первому (главному) накопителю на гибких магнитных дисках (НГМД);
B: – соответствует второму (вспомогательному) накопителю на гибких магнитных дисках (НГМД), или дисководу;
C:, D: и т. д. – соответствуют накопителям на жестком диске (НЖД, "винчестере").
Если путь начинается с символа "\", то маршрут начинается от корневого каталога: A:\GM.
Если путь начинается с символов ".." (две точки), то маршрут начинается от родительского каталога: ..\LET.
Иначе маршрут начинается от текущего каталога: md1.exe.
Родительскому (относительно текущего) каталогу в MS DOS присвоен специальный символ ".." (две точки).
Таким образом, символы ".." соответствуют переходу в родительский каталог (более высокого уровня).
Текущему каталогу присвоена точка.
cd .\3, cd 3 – одно и то же,
cd 2\3 – переход из 2 в 3.
Маршрут используется как префикс к имени файла, отделяемый от собственно имени файла тем же разделителем "\". Итак имя файла задается полностью следующими элементами:
1) именем накопителя (устройства), на котором находится нужный файл (оно может опускаться);
2) местоположением (путем, Path), которое также может опускаться;
3) собственно полным именем файла, завершающим цепочку.
Эти три компоненты в совокупности образуют "спецификацию файла".
Формат записи спецификации файла:
– указатель накопителя (устройства);
– путь к файлу.
Примеры спецификаций файлов:
A:\chapt7.txt – текстовой файл, входящий в корневой каталог дискеты A:.
sqroot.exe – файл с программой, входящий в текущий каталог на текущем диске.
A:test.pas или
A:\test.pas – файл с исходным текстом программы на языке PASCAL на дискете A:, не имеющей подкаталогов.
Здесь и всюду далее квадратные скобки "[" и "]" – обозначение, указывающее, что информация внутри них не является обязательной.
При указании имен файлов могут использоваться два специальных символа:
"*" (знак "звездочка");
"?" (знак вопроса),
которые позволяют задавать шаблон имени файла.
В шаблонах знак "*" обозначает любое число любых символов, которые допускаются в именах и типах файлов.
Знак вопроса "?" соответствует произвольному символу в той позиции, где стоит "?". Он позволяет "замаскиро-вать" любой одиночный символ в имени или типе файла.
Специальные символы "*" и "?" называют масками (джокерами или Wildcards). Поэтому эти символы нельзя использовать в именах для отдельных файлов.
AB*.* – все файлы с именами, начинающимися с AB;
*.* – все файлы текущего каталога;
*. – все файлы, у которых отсутствует тип;
. BAS – все файлы типа BAS с не более, чем трехбуквенными именами;
C?.* – все файлы, имена которых начинаются с C и состоят из одной или двух букв.
Традиционные пути 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.
Читайте также: