Что такое директория в программировании

Директория (файловая система)

Содержание

Термин «Папка»

В этой терминологии, папка, находящаяся в другой папке, называется подпапка или вложенная папка. Все вместе, папки на компьютере представляют иерархическую структуру, представляющую собой дерево каталогов. Подобная древообразная структура возможна в операционных системах, не допускающих существование «физических ссылок» (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
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++

directory_options
Константа Описание
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-подобных ОС три вида прав доступа к ресурсу:

Константы std::filesystem::perms

Константа Восьмеричное значение Описание
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 )

perm_options

Константа Описание
replace Права будут полностью заменены аргументом для permissions() (поведение по умолчанию)
add Права будут заменены на аргументы perms с побитовым ИЛИ и текущим разрешением
remove Права будут заменены на аргументы perms с побитовым И для отрицания и текущим разрешением
nofollow Права будут изменены для самой символической ссылки, а не для файла, на который она ссылается
permissions

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

Источник

Файловая структура — Основы командной строки

Файловая структура *nix-систем серьёзно отличается от структуры в Windows и заслуживает отдельного внимания. Начнём с базовых понятий. Файловая структура представляет собой дерево, в узлах которого находятся директории (файлы специального типа), а в листьяхфайлы.

Кстати, понятие «папка» в *nix-системах не используется, говорят «директория» или «каталог», хотя по существу эти термины означают одно и то же.

Информация о любом файле или директории доступна по команде stat (file system status):

macOS в этой ситуации идёт по пути Windows и тоже не учитывает регистр

Говорят, что в *nix «всё есть файл». На нижнем уровне так и есть (почти). Директория — это специальный файл, который содержит список файлов. Любое подключаемое устройство становится файлом или директорией, если это накопитель. Такая концепция довольно удобна для разработчиков, потому что печать на принтер и вывод на экран между собой ничем не отличаются — для кода это просто «запись в файл». На пользовательском уровне директория всё же отличается от файла и имеет собственные команды для создания, удаления и модификации.

Кроме обычных файлов, в *nix существует ряд других:

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

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Источник

Директория (файловая система)

Директория (файловая система)

Содержание

Термин «Папка»

В этой терминологии, папка, находящаяся в другой папке, называется подпапка или вложенная папка. Все вместе, папки на компьютере представляют иерархическую структуру, представляющую собой дерево каталогов. Подобная древообразная структура возможна в операционных системах, не допускающих существование «физических ссылок» (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 подобных системах, который содержит информацию о различных файловых системах и устройствах хранения информации компьютера; описывает, как диск (раздел) будет… … Википедия

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • Что такое директория в программировании простыми словами
  • Что такое директория в linux
  • Что такое директория windows
  • Что такое директория linux
  • Что такое директива в программировании

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии