Працювати з цією функцією можна наступним чином:
/ Data "); // переходимо в / home / користувач / data (для Unix)
Щоб дізнатися поточний каталог можна скористатися функцією getcwd:
Для того щоб відкрити каталог використовується функція opendir. відкриває каталог, заданий параметром path:
Після того, як каталог відкритий, прочитати його можна функцією readdir:
Ця функція повертає імена елементів, що містяться в каталозі. Крім файлів і папок в каталогах знаходяться також елементи "." і "..". Перший елемент вказує на поточний каталог, а другий - на батьківський. Поточний каталог, до речі, можна відкрити, вказавши його ім'я як ".":
Після того, як робота з каталогом закінчена, його потрібно закрити. Закриття каталогу виконується за допомогою функції closedir:
Нижче наведено приклад, який здійснює читання і виведення файлів, що знаходяться в поточному каталозі.
Зауважимо, що ця функція повертає також "." і "..". Якщо цього робити не потрібно, то виключити ці значення можна наступним чином:
Як приклад на розглянуті функції, давайте створимо скрипт, що видаляє всі файли з каталогу c: / temp, до яких не було доступу протягом доби. Функція видалення файлів в цьому випадку викликається рекурсивно.
Створення каталогів проводиться за допомогою функції mkdir:
Ця функція створює каталог з ім'ям dirname і правами доступу mode. У разі невдачі повертає false. Права доступу задаються тільки для каталогів UNIX, оскільки в Windows цей аргумент ігнорується. Нижче наведено приклад створення каталогу test в директорії c: / temp.
Видалити каталог можна за допомогою функції rmdir:
Тепер видалимо щойно створений каталог / test:
Функція rmdir видаляє тільки порожні каталоги. Для того щоб видаляти непусті каталоги, давайте напишемо функцію і видалимо каталог c: / temp з усіма вкладеними папками і файлами:
При рекурсивном виклик функції не передавайте в якості аргументів записи "." і "..", які вказують на поточний і батьківський каталоги, так як в цьому випадку ви можете втратити ваші дані. Пропускайте ці записи явно за допомогою умовного оператора.