Метод allFiles
Метод allFiles класса Storage применяется
для получения массива всех файлов в указанной директории
и всех её поддиректориях. В отличие от метода files,
который возвращает только файлы верхнего уровня,
allFiles рекурсивно обходит все вложенные папки
и возвращает полный список файлов. Первым параметром
передаётся путь к директории, вторым параметром
можно передать булевый флаг для сортировки результатов.
Синтаксис
<?php
use Illuminate\Support\Facades\Storage;
$files = Storage::allFiles($directory);
$files = Storage::allFiles($directory, $recursive);
?>
Пример
Давайте получим список всех файлов в директории
'public/uploads', включая файлы во вложенных папках:
<?php
use Illuminate\Support\Facades\Storage;
$res = Storage::allFiles('public/uploads');
foreach ($res as $file) {
echo $file . "\n";
}
?>
Результат выполнения кода:
"public/uploads/image1.jpg"
"public/uploads/image2.png"
"public/uploads/2024/report.pdf"
"public/uploads/2024/01/data.csv"
"public/uploads/avatars/user1.jpg"
Пример
Давайте получим все файлы в корневой директории диска с сортировкой результатов по возрастанию:
<?php
use Illuminate\Support\Facades\Storage;
$res = Storage::allFiles('/', true);
foreach ($res as $file) {
echo $file . "\n";
}
?>
Результат выполнения кода:
"file1.txt"
"file2.txt"
"folder1/doc1.pdf"
"folder1/doc2.pdf"
"folder2/subfolder/doc3.pdf"
Пример
Давайте получим список всех PHP-файлов в директории
'app/Models', используя фильтрацию с помощью
метода filter:
<?php
use Illuminate\Support\Facades\Storage;
$allFiles = Storage::allFiles('app/Models');
$phpFiles = array_filter($allFiles, function ($file) {
return str_ends_with($file, '.php');
});
foreach ($phpFiles as $file) {
echo $file . "\n";
}
?>
Результат выполнения кода:
"app/Models/User.php"
"app/Models/Post.php"
"app/Models/Comment.php"
"app/Models/Category.php"
Смотрите также
-
метод
files,
который получает список файлов только в указанной директории без рекурсии -
метод
allDirectories,
который получает список всех директорий рекурсивно -
метод
exists,
который проверяет существование файла или директории -
метод
delete,
который удаляет указанный файл или директорию