Файловая система: Каталоги
Содержимое каталога
Метод list возвращает содержание каталога относительно корневого каталога.
Методы files и directories возвращают только нужный тип содержания. Второй аргумент true включает рекурсивный обход, метод allFiles – сокращение для рекурсивного списка файлов.
$disk = Storage::disk('uploads');
$items = $disk->list('reports');
$files = $disk->files('reports');
$nestedFiles = $disk->files('reports', recursive: true);
$allFiles = $disk->allFiles('reports');
$directories = $disk->directories('reports');
$nestedDirectories = $disk->directories('reports', recursive: true);
На дисках, элементы списков это объекты Imhotep\Filesystem\FileInfo. У них доступны методы getPathname(), getBasename(), type(), isFile(), isDir(), size() и lastModified().
foreach (Storage::disk('uploads')->list('reports') as $item) {
if ($item->isFile()) {
$name = $item->getBasename();
}
}
Параметр hidden у методов list() и files() управляет обработкой служебных точек обхода. Он не является фильтром имён файлов, начинающихся с точки.
Создание, очистка и удаление
$disk = Storage::disk('uploads');
// Создаёт и промежуточные каталоги.
$disk->makeDirectory('reports/2026/july');
// Удаляет всё содержимое, но сохраняет сам каталог.
$disk->cleanDirectory('reports/temporary');
// Удаляет каталог вместе с содержимым.
$disk->deleteDirectory('reports/2026/july');
Метод makeDirectory() возвращает false, если каталог уже существует. Перед очисткой или удалением убедитесь в правильности относительного пути, операции рекурсивны.
Ограничения облачного S3-диска
S3 не имеет настоящих каталогов. Облачный драйвер только эмулирует их работу. Например, для получения списка файлов в каталоге, используйте:
$keys = Storage::cloud('s3')->files('reports/2026/');