Управление каталогами

Управление каталогами

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

BOOL CreateDirectory(LPCTSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes)

BOOL RemoveDirectory(LPCTSTR lpPathName)

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

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

BOOL SetCurrentDirectory(LPCTSTR lpPathName) 

lpPathName определяет путь к новому текущему каталогу. Это может быть относительный путь или абсолютный полный путь, в начале которого указаны либо буква диска и двоеточие (например, D:), либо имя UNC (например, \ACCTG_SERVERPUBLIC).

Если в качестве пути к каталогу указывается только имя диска (например, А: или С:), то рабочим каталогом становится рабочий каталог данного диска. Например, если рабочие каталоги устанавливались в последовательности:

C:MSDEV

INCLUDE

A:MEMOSTODO

С:

то результирующим рабочим каталогом будет:

C:MSDEVINCLUDE

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

DWORD GetCurrentDirectory(DWORD cchCurDir, LPTSTR lpCurDir)

Возвращаемое значение: длина строки, содержащей путь доступа к текущему каталогу, или требуемый размер буфера, если буфер не достаточно велик; в случае ошибки — нуль.

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

Заметьте, что в случае если размер буфера оказался недостаточным для того, чтобы в нем уместилась вся строка пути, функция возвратит значение, указывающее на требуемый размер буфера. Поэтому при тестировании успешности выполнения функции следует проверять два условия: равно ли возвращаемое значение нулю и не превышает ли оно значение, заданное аргументом cchCurDir.

Подобный метод возврата строк и их длины широко распространен в Windows и требует внимательной обработки результатов. Программа 2.6 иллюстрирует типичный фрагмент кода, реализующего эту логику. Аналогичная логика реализуется и в других примерах. Вместе с тем, указанный метод применяется не всегда. Некоторые функции возвращают булевские значения, а параметр размера в них используется дважды: перед вызовом функции его значение устанавливается равным размеру буфера, а затем изменяется функцией. В качестве одного из многих возможных примеров можно привести функцию LookupAccountName, с которой вы встретитесь в главе 15. 

Альтернативный подход, демонстрируемый в программе 15.4 функцией GetFileSecurity, заключается в выделении буферной памяти в промежутке между двумя вызовами функций. Первый вызов обеспечивает получение длины строки, на основании чего и выделяется память, тогда как второй — получение самой строки. Самым простым подходом в данном случае является выделение памяти для строки, насчитывающей МАХ_РАТН символов.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

4.6. Команды для работы с файлами и каталогами

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

4.6. Команды для работы с файлами и каталогами В предыдущих разделах мы уже упоминали некоторые команды для работы с файлами и каталогами: pwd, cd, ls, ln, chmod. В этом разделе рассмотрим (очень кратко) еще несколько часто используемых команд.


Работа с виртуальными каталогами IIS

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Работа с виртуальными каталогами IIS Одна инсталляция IIS способна обслуживать множество Web-приложений, каждое из которых размещается в своем виртуальном каталоге. Каждый виртуальный каталог проецируется в физический каталог на локальном жестком диске. Так, если вы


4.2. Команды для работы с файлами и каталогами

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

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


4.2.2. Команды для работы с каталогами

Из книги Новейший самоучитель работы на компьютере автора Белунцов Валерий

4.2.2. Команды для работы с каталогами Просмотр содержимого каталогаДля просмотра содержимого каталога используется команда ls. Закоренелые пользователи DOS могут использовать привычную им команду dir, но команда Is намного удобнее. Программа ls имеет около сорока параметров,


Глава 6 Работа с файлами и каталогами

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Глава 6 Работа с файлами и каталогами ? Что нужно знать о файлах?? Каталоги.? Создание, копирование и перемещение файлов и


Управление файлами и каталогами

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Управление файлами и каталогами В этом разделе вводятся основные функции, предназначенные для управления файлами и


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

Из книги Справочник по PHP автора

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


14.8. Работа с файлами, каталогами и деревьями

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

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


Функции для работы с каталогами

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Функции для работы с каталогами mkdirСоздание каталога.Синтаксис:bool mkdir(string $name, int $perms)Создает каталог с именем $name и правами доступа perms. Права доступа для каталогов указываются точно так же, как и для файлов. Чаще всего значение $perms устанавливают равным 0770 (предваряющий ноль


Манипулирование каталогами

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Манипулирование каталогами mkdirСоздание каталога.Синтаксис:bool mkdir(string $name, int $perms)Создает каталог с именем $name и правами доступа perms. Права доступа для каталогов указываются точно так же, как и для файлов. Чаще всего значение $perms устанавливают равным 0770 (предваряющий ноль


Глава 14 Операции с каталогами

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

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


Работа с каталогами файловой системы

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Работа с каталогами файловой системы Функция Краткое описание chdir изменение текущего рабочего каталога getcwd получить имя текущего рабочего каталога mkdir создать новый каталог rmdir удаление каталога Система программирования ТС предоставляет, кроме перечисленных,


2.1.4. Команды работы с файлами и каталогами

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

2.1.4. Команды работы с файлами и каталогами Предварительно замечу, что командой в ОС Linux называется все, что может быть выполнено: исполняемый файл, встроенная команда текущей программы и даже формируемая на ходу последовательность символов. Синтаксис обычной


5.6. Команды для работы с каталогами

Из книги автора

5.6. Команды для работы с каталогами Основные команды для работы с каталогами приведены в табл. 5.2. При указании имени каталога можно указать следующие символы:?. — означает текущий каталог. Если вы введете команду cat./file, то она выведет файл file, который находится в текущем


Глава 12. Управление файлами и каталогами

Из книги автора

Глава 12. Управление файлами и каталогами 12.0. Введение Операционная система iOS основана на MacOS X, которая, в свою очередь, построена на базе операционной системы Unix. В iOS полная структура каталогов остается невидимой для приложения, поскольку каждое приложение, написанное


Работа с каталогами

Из книги автора

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