php-logo-elephant-2Создание папки

Для создания папки можно воспользоваться функцией mkdir. При создании, можно сразу задать права доступа на директорию. Следует обратить внимание, что заданные таким образом права, будут работать, только в операционных системах *nix, а в windows такие права будут проигнорированы. Пример:

Удаление папки

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

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

Установка прав на папку

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

Получение размера папки

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

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