Laravel File Storage удаляет все файлы в каталоге

Есть ли способ удалить все файлы в определенном каталоге. Я пытаюсь очистить все мои файлы в фонах созданной папки в хранилище \ app \ фоны, но в документы Кажется, нет способа удалить все.

Storage::delete('backgrounds\*.jpg');

6

Решение

Я не думаю, что это лучший способ решить эту проблему. Но я решил свое призвание

use Illuminate\Filesystem\Filesystem;

Затем инициируйте новый экземпляр

$file = new Filesystem;
$file->cleanDirectory('storage/app/backgrounds');
13

Другие решения

Вы можете использовать метод файловой системы cleanDirectory

$success = Storage::cleanDirectory($directory);

Пожалуйста, смотрите документацию для получения дополнительной информации:

https://laravel.com/api/5.5/Illuminate/Filesystem/Filesystem.html#method_cleanDirectory

2

В Ларавел 5.7 Вы можете очистить каталог, используя Storage фасад вроде так:

Storage::delete(Storage::files('backgrounds'));

$dirs = Storage::directories('backgrounds');

foreach ($dirs as $dir) {
Storage::deleteDirectory($dir);
}

delete() метод может получить массив файлов для удаления, в то время как deleteDirectory() удаляет один каталог (и его содержимое) одновременно.

Я не думаю, что это хорошая идея, чтобы удалить, а затем заново создать каталог, поскольку это может привести к нежелательным условиям гонки.

1

Я справляюсь с этим, удаляя весь каталог, так как он мне не нужен. Но если, в любом случае, вам нужен каталог, вам следует просто создать его заново:

$d = '/myDirectory'
Storage::deleteDirectory($d);
Storage::makeDirectory($d);
0
    use Illuminate\Support\Facades\Storage;

// Get all files in a directory
$files =   Storage::allFiles($dir);

// Delete Files
Storage::delete($files);
0
По вопросам рекламы [email protected]