Что такое директория в программировании
Директория (файловая система)
Директория (файловая система)
Содержание
Термин «Папка»
В этой терминологии, папка, находящаяся в другой папке, называется подпапка или вложенная папка. Все вместе, папки на компьютере представляют иерархическую структуру, представляющую собой дерево каталогов. Подобная древообразная структура возможна в операционных системах, не допускающих существование «физических ссылок» (DOS и старые версии Windows допускали только аналог символических ссылок — Shortcut (Ярлык)). В общем случае файловая система представляет собой ориентированный граф.
Каталоги в UNIX
Иерархия каталогов в Microsoft Windows
В иерархии папок Windows системная папка «Рабочий стол» является директорией верхнего уровня, содержащей все остальные каталоги компьютера. В Windows 4.x она соответствует директории «C:\WINDOWS\Рабочий стол» В папке «Рабочий стол» находятся системные папки «Корзина» («C:\RECYCLE»), «Сетевое окружение», «Мой компьютер» и созданные пользователем папки. В папке «Мой компьютер» находятся системные каталоги дисков всех устройств для хранения информации, подключенных к компьютеру (дисководы гибких дисков, жесткие диски, CD-ROM и т. д.). Каталоги дисков обозначаются именами этих дисков, как в DOS — буквами латинского алфавита от «A:\» до «Z:\». Буквы «A:\» и «B:\», как правило, используются только для дисководов гибких дисков. Начиная с буквы «C:\» идут папки жестких дисков, логических, сетевых и внешних дисков, CD и DVD приводов и т. д.
Примечания
См. также
Ссылки
Полезное
Смотреть что такое «Директория (файловая система)» в других словарях:
Папка (файловая система) — Директория (англ. directory справочник, указатель), син. каталог, папка сущность в файловой системе, упрощающая организацию файлов. Типичная файловая система содержит большое количество файлов, и директории помогают упорядочить её путём их… … Википедия
Директория — Директория форма организации верховной власти в виде особой коллегиальной формы управления. В отдельных случаях термин также обозначает коллегиальную форму управления вообще, безотносительно к государственной власти. Так, директорией… … Википедия
Subversion — У этого термина существуют и другие значения, см. Subversion (игра). Subversion Логотип Subversion Тип централизованная … Википедия
SVN — Subversion Логотип Subversion Тип система управления версиями Разработчик CollabNet, Inc. Написана на C … Википедия
SubVersion — Логотип Subversion Тип система управления версиями Разработчик CollabNet, Inc. Написана на C … Википедия
Svn — Subversion Логотип Subversion Тип система управления версиями Разработчик CollabNet, Inc. Написана на C … Википедия
GoboLinux — Семейство ОС Linux Последняя версия 014.01 … Википедия
EncFS — Тип файловая система, шифрование Разработчик Valient Gough Операционная система Linux, FreeBSD, Mac OS Последняя версия 1.7.4 (5 сентября 2010) Лицензия G … Википедия
FAT — (англ. File Allocation Table «таблица размещения файлов») классическая архитектура файловой системы, которая из за своей простоты всё ещё широко используется для флеш накопителей. В недавнем прошлом использовалась в дискетах, на… … Википедия
fstab — (сокр. от англ. file systems table) один из конфигурационных файлов в UNIX подобных системах, который содержит информацию о различных файловых системах и устройствах хранения информации компьютера; описывает, как диск (раздел) будет… … Википедия
Директория (файловая система)
Содержание
Термин «Папка»
В этой терминологии, папка, находящаяся в другой папке, называется подпапка или вложенная папка. Все вместе, папки на компьютере представляют иерархическую структуру, представляющую собой дерево каталогов. Подобная древообразная структура возможна в операционных системах, не допускающих существование «физических ссылок» (DOS и старые версии Windows допускали только аналог символических ссылок — Shortcut (Ярлык)). В общем случае файловая система представляет собой ориентированный граф.
Каталоги в UNIX
Иерархия каталогов в Microsoft Windows
Директория, которая не является поддиректорией ни одной другой директории, называется корневой. Это значит, что эта директория (каталог) находится на самом верхнем уровне иерархии всех директорий. В Linux системах корневая директория обозначается как правило «/», в Windows каждый из дисков имеет свою корневую директорию C:\, D:\ и т. д.
На самом деле, в DOS/Windows системах также, как и в UNIX-подобных существует один корневой каталог со вложенными директориями, имеющими названия «c:», «d:» и т. д. В эти каталоги монтируются разделы жёсткого диска. То есть, c:\ — это всего лишь ссылка на file:///c:/. Однако, в отличие от UNIX-подобных файловых систем, в Windows запись в корневой каталог запрещена, как и просмотр его содержимого. Каталоги в Windows бывают системные (служебные, созданные ОС) и пользовательские (созданные пользователем). Все каталоги, создаваемые пользователем, по умолчанию имеют одинаковые значки, системные же каталоги обычно имеют разные иконки. Пример системных каталогов: «Рабочий стол», «Корзина», «Сетевое окружение», «Панель управления», каталоги логических дисков и т. п.
В иерархии папок Windows системная папка «Рабочий стол» является директорией верхнего уровня, содержащей все остальные каталоги компьютера. В Windows 9x она соответствует директории «C:\WINDOWS\Рабочий стол» В папке «Рабочий стол» находятся системные папки «Корзина» («C:\RECYCLE»), «Сетевое окружение», «Мой компьютер» и созданные пользователем папки. В папке «Мой компьютер» находятся системные каталоги дисков всех устройств для хранения информации, подключенных к компьютеру (дисководы гибких дисков, жесткие диски, CD-ROM и т. д.). Каталоги дисков обозначаются именами этих дисков, как в DOS — буквами латинского алфавита от «A:\» до «Z:\». Буквы «A:\» и «B:\», как правило, используются только для дисководов гибких дисков. Начиная с буквы «C:\» идут папки жестких дисков, логических, сетевых и внешних дисков, CD и DVD приводов и т. д.
Системы файлов
Директории
Особенности системы файлов в «Эльбрусе»
Говоря о структуре директорий и именовании файлов, нельзя не упомянуть столь экзотическую систему файлов, как в МВК «Эльбрус». Это будет полезно читателям, чтобы сравнить и лучше оценить разнообразие подходов к системам файлов.
Основные концепции системы файлов МВК «Эльбрус» – это файлы, контейнеры, справочники. Понятие контейнера в «Эльбрусе» близко к современным понятиям тома и контейнера в системах Windows и Solaris: контейнер – это хранилище файлов на одном или нескольких дисках. Понятие справочника близко к понятию директории в традиционных файловых системах.
Существенным отличием файловой системы «Эльбруса» является то, что возможно создание файла и управление им без присваивания ему имени, т.е. без отображения его в справочниках (директориях). Такой временный файл создается в программе, ссылка на файл хранится в глобальной или локальной переменной, и по окончании выполнения программы файл уничтожается, если на него не была сохранена ссылка в справочнике на диске. Кроме того, файлы могут ссылаться друг на друга ( по прямой «физической» файловой ссылке, а не c помощью символьных путей) через справочники внешних ссылок (СВС).СВС имеется у каждого файла. Его элементы адресуются по номерам, а не по именам. Типичный пример: файл объектного кода (ФОК) ссылается через свой СВС на файл дополнения к файлу объектного кода (ДФОК),содержащий в унифицированном виде таблицы именованных сущностей, определенных в программе и ее процедурах. Выражаясь современным языком, ДФОК содержит метаданные. Эта взаимосвязь используется при диагностике ошибок времени выполнения и для многих других целей.
Типичная организация файловой системы изображена на рис. 19.3.
Файловые системы организуются на дисках. Каждый диск поделен на разделы (partitions) – смежные области дисковой памяти, имеющие свои логические имена (обычно в виде первых букв латинского алфавита). Однако возможна и организация раздела, занимающего несколько дисков. Для деления диска на разделы рекомендуем утилиту Partition Magic. В разделах хранятся директории и файлы. Каждый раздел имеет корневую директорию, у которой при необходимости могут быть организованы поддиректории, на которые она ссылается.
Операции над директориями
Создание файла.Как правило, создание файла в текущей директории выполняется программой, которая в дальнейшем будет работать с этим файлом – например, в Windows – текстовыми редакторами notepad, wordpad, Microsoft Word. Многие файлы создаются в текущей директории неявно, в результате компиляции или каких-либо других системных операций. Например, если в текущей директории имеется файл исходного кода на языке Java – program.java, то в результате его компиляции:
Создание директории.В рабочей директории можно создать другую директорию. На командном языке это делается командой mkdir, например:
ls doc > doc_list.txt
mv old_file.txt new_file.txt
Обход файловой системы. Более сложная операция осуществляет обход дерева директорий, начиная с заданной корневой, например, с целью поиска заданного файла. Например, в системе UNIX команда :
§34 Файловая система
Путь к директории или файлу. Класс path
Относительный путь
Относительный путь удобно применять в том случае, если нужно избегать привязки к корневой директории (например, если она потенциально может измениться).
Условные обозначения:
. (одна точка) – текущий файл или директория
.. (две точки) – перейти на уровень вверх (в родительскую директорию)
/ – разделитель директорий (directory-separator).
Полный путь
Полный путь всегда определяется от корневой директории (вне зависимости от текущей выбранной папки). Полный путь к файлам mc.menu и 1.mp3 будет выглядеть следующим образом:
class path
Класс path обладает большим количеством методов. Ниже приводятся некоторые из них:
Директория. Класс directory_iterator
Рассмотрим подробнее функции библиотеки для работы с директориями.
create_directory, create_directories
- p – путь ex_p – путь из которого копируются атрибуты ec – выходной параметр для сообщений об ошибке
Копирует файлы и директории. copy_options устанавливает параметры копирования.
Параметры копирования. copy_options
Константа | Описание |
---|---|
skip_existing | Сохранить, но не сообщать об ошибках |
overwrite_existing | Заменить существующий файл |
update_existing | Замените существующий файл, только если он старше, чем копируемый файл |
recursive | Рекурсивно копировать поддиректории и их содержимое |
copy_symlinks | Копировать только символические ссылки, а не файлы, на которые они указывают |
skip_symlinks | Игнорировать символические ссылки |
directories_only | Копировать только структуру директорий, а не файлы относящиеся к директориям |
create_symlinks | Вместо создания копий файлов создавать символические ссылки, указывающие на оригиналы. Примечание: исходный путь должен быть абсолютным, если путь назначения не находится в текущей директории |
create_hard_links | Вместо создания копий файлов создаются жесткие ссылки |
remove, remove_all
rename
directory_iterator
operator= operator* operator-> incrementoperator++
Константа | Описание |
---|---|
follow_directory_symlink | Не пропускать символические ссылки |
skip_permission_denied | Пропускать директории в которых установленные привилегии могут привести к ошибкам |
В программе ниже покажем содержимое директории проекта.
Обратите внимание, что в процессе работы итератора текущая директория будет изменяться. Узнать какая директория в данный момент выбрана можно с помощью функции current_path (см. ниже).
recursive_directory_iterator
current_path
is_directory
temp_directory_path
В процессе работы приложения часто требуется создавать временные файлы. Чтобы автоматизировать этот процесс нужно знать, где находится системная директория для временных файлов. Функция temp_directory_path возвращает расположение подходящей директории для временных файлов.
Файлы и ссылки
Проверка типа файла
copy_file
file_size
Возвращает размер файла. Будет следовать символической ссылке. Попытка определения размера директории определяется реализацией.
resize_file
Символические ссылки. create_symlink
Символичеcкие ссылки (symbolic links) – это специальные файлы, которые содержат путь к файлам или директориям. Ссылки, как и файлы, обладают собственным именем и правами доступа, но жестко к файлам не привязаны, а права на файлы могут отличаться от прав символических ссылок, которые на них указывают. На один и тот же файл могут ссылаться несколько символических ссылок. Если удалить символическую ссылку, то файл, на который она ссылается, не будет удален. Если файл удален (а так же перемещен или переименован), то ссылка будет ссылаться на несуществующий ресурс.
Файловая библиотека имеет несколько функций для работы с символическими ссылками. Создать символическую ссылку можно с помощью функций create_symlink и create_directory_symlink
Версия символической ссылки для директории существует для совместимости, так как в системах POSIX разницы в символических ссылках на файл и директорию не существует. Целевой путь может быть недействительным.
copy_symlink
Копирует символическую ссылку в другое место.
read_symlink
Возвращает путь цели символической ссылки или ошибку, если p не является символической ссылкой или путь не символичеcкая ссылка. При ошибке возвращается пустой путь.
Жесткая ссылка. create_hard_link
hard_link_count
Возвращает количество жестких ссылок для объекта файловой системы, идентифицированного путем p.
Права на файлы и директории
Символические ссылки, файлы и директории имеют в UNIX-подобных ОС три вида прав доступа к ресурсу:
Константа | Восьмеричное значение | Описание |
---|---|---|
none | 000 | биты разрешения не установлены |
owner_read | 400 | Владелец файла имеет разрешение на чтение |
owner_write | 200 | Владелец файла имеет разрешение на запись |
owner_exec | 100 | Владелец файла имеет разрешение на выполнение/поиск |
owner_all | 700 | Владелец файла имеет права на чтение, запись и выполнение/поиск. Эквивалентно: owner_read | owner_write | owner_exec |
group_read | 040 | Группа пользователя файла имеет разрешение на чтение |
group_write | 020 | Группа пользователя файла имеет разрешение на запись |
group_exec | 010 | Группа пользователя файла имеет разрешение на выполнение/поиск |
group_all | 070 | Группа пользователя файла имеет разрешения на чтение, запись и выполнение/поиск |
others_read | 004 | Все остальные пользователи имеют разрешение на чтение |
others_write | 002 | Все остальные пользователи имеют разрешение на запись |
others_exec | 001 | Все остальные пользователи имеют разрешение на выполнение/поиск |
others_all | 007 | Все остальные пользователи имеют права на чтение, запись и выполнение/поиск. Эквивалентно others_read | others_write | others_exec |
all | 777 | Все пользователи имеют права на чтение, запись и выполнение/поиск. Эквивалентно owner_all | group_all | others_all |
set_uid | 4000 | Установить идентификатор пользователя для владельца файла на выполнение |
set_gid | 2000 | Установить идентификатор группы для идентификатора группы пользователей файла на выполнение |
sticky_bit | 1000 | Значение, определяемое реализацией. При установке – только владельцы файлов могут удалять файлы в директории, даже если директория доступна для записи другим пользователям (используется с /tmp ) |
Константа | Описание |
---|---|
replace | Права будут полностью заменены аргументом для permissions() (поведение по умолчанию) |
add | Права будут заменены на аргументы perms с побитовым ИЛИ и текущим разрешением |
remove | Права будут заменены на аргументы perms с побитовым И для отрицания и текущим разрешением |
nofollow | Права будут изменены для самой символической ссылки, а не для файла, на который она ссылается |
permissions
Для того, чтобы показать права на все файлы в домашней директории воспользуемся итераторами по директории. Чтобы пути выводились без кавычек, будем конвертировать путь в строку, а затем небольшими манипуляциями произведем выравнивание:
Компьютерная грамотность с Надеждой
Заполняем пробелы — расширяем горизонты!
Директория, папка
Для того чтобы иметь относительный порядок на своем компьютере, необходимо свои файлы хранить в соответствующих папках. Это значительно упрощает как поиск отдельных файлов, так и работу с группой файлов: перемещение, копирование, удаление и т.п. Такой принцип организации используется в библиотеках, архивах и канцеляриях.
Документы, систематизированные по общему признаку, хранятся в одной папке (или каталоге). Папки подписываются. Получается, что документы не свалены в одну кучу, а разложены по папкам и в итоге можно легко найти необходимый документ.
По аналогии с этим компьютерные файлы объединяют в группы, для которых на компьютере создают папки. Таким образом, назначение папки состоит в объединении файлов и других папок в группы по любому параметру.
На сегодняшний день три понятия:
с точки зрения компьютерной грамотности, означают одно и то же, давайте уточним, что именно.
Папка или директория – это специальное место на компьютерном носителе информации, в котором хранятся имена файлов и сведения об этих файлах (размер файлов, время их последнего обновления, свойства файлов и т.п.)
Понятия «каталог», «директория» появились в компьютерном мире одновременно с понятиями «файл», «файловая система» для упрощения организации файлов. Понятие «папка» в мире компьютеров появилось значительно позднее, точнее, вместе с появлением Windows 95.
Можно придумать собственную систему для хранения файлов и папок на своем компьютере. Например, создать папки, где файлы сгруппированы:
по теме – папки «Обучающие программы», «Счета», «Рыбалка» и т.п., по имени автора материалов – папки «Мамонтов», «Воробьёва» и т.п.. по времени создания – папка «01.01-30.06.2010» с файлами, созданными с 1 января по 30 июня 2010г., папка «3 квартал 2010» и т.п.
Если имя файла хранится в папке с именем, например, 01, то говорят, что файл находится в папке 01. Ту же самую мысль можно выразить, если сказать, что файл зарегистрирован в каталоге 01. Обычно один и тот же файл (т.е. с одним и тем же именем) находится в одной папке, но при необходимости его можно хранить в нескольких папках, что можно легко сделать с помощью операции копирования.
Как назвать папку?
Все папки имеют имена. Требования к именам папок те же, что и к именам файлов. Единственное отличие состоит в том, что в имени папки расширение, как правило, не применяется, хотя при необходимости его можно использовать. В каждой папке могут храниться как файлы, так и другие папки, те, в свою очередь, тоже могут содержать файлы и папки и т.д.
Папки чем-то напоминают матрёшки. Про такие папки, находящиеся внутри других папок, говорят, что это вложенные папки. Папка, включающая в себя другие папки, называется родительской или охватывающей.
Если возле названия папки стоит «+», то это значит, что в этой папке есть еще папки и их можно открыть. Для этого надо щёлкнуть по «+» и он поменяется на «-», при этом под названием папки откроется список из папок, содержащихся в открываемой папке.
Если же щелкнуть по «-», то он превратится в «+», а список содержимого папки закроется.
Структура папок
Когда Вы открываете Проводник (Пуск—>Программы—>Стандартные—>Проводник), то видите там некое дерево, конечно, без зеленых листочков, потому что это компьютерное дерево. Дело в том, что если попробовать нарисовать общую структуру всех папок, находящихся на своем компьютере, то получится как раз дерево.
Такую структуру папок (каталогов) называют иерархической древообразной (или древовидной).
Обычно пользователи называют это просто дерево папок.
Корневая папка. Вложенные папки.
На каждом диске имеется главная, или корневая, папка (каталог), которая не имеет собственного имени и ее обозначают обратным слешем: \. Например, C:\ — корневая папка диска C, где «C:» — имя самого диска, а «\» — обозначение корневой папки.
Папки и файлы, которые зарегистрированы в корневой папке диска, имеют вложенность 1-ого уровня. Во вложенных папках 1-ого уровня регистрируются папки и файлы 2-ого уровня и т.д. В итоге как раз и получается дерево папок и файлов.
Помимо корневой папки диска, папок 1-го, 2-го и т.д. уровней вложенности, есть еще понятие текущей папки. Текущая папка – это папка, с которой в настоящий момент работает пользователь.
Если Вам понадобился файл не из текущей папки, необходимо указать в какой папке (папках) находится этот файл, то есть указать путь к файлу. По аналогии с матрешками файл является самой маленькой матрешкой, вложенной в матрешки бОльшего размера (папки). Чтобы указать полное имя файла (т.е. имя самой маленькой матрёшки), следует поименно назвать все матрешки бОльшего размера (папки).
Что такое полное имя файла
Полное имя файла начинается с указания имени дисковода, затем идет последовательность из имен папок и, наконец, имя файла.
Имя дисковода, имена папок и имя файла в полном имени разделяются символами « \ ».
Например, запись полного имени файла может выглядеть так: D:\Финансы\Счета\Счет-1.doc. Это означает, что файл с именем Счет-1.doc находится в папке Счета, которая в свою очередь находится в папке Финансы на диске D:.
Полный путь к файлу (или путь к файлу) – это часть полного имени, не включающая само имя файла. Путь к файлу Счет-1.doc выглядит так: D:\Финансы\Счета\.
Упражнение по компьютерной грамотности:
Напишите, как выглядит полное имя какого-нибудь файла, находящегося на вашем компьютере в папке «Мои документы»?
P.S. Статья закончилась, но можно еще прочитать:
Нашли ошибку? Выделите фрагмент текста и нажмите Ctrl+Enter.