Laravel 文件存储删除目录中的所有文件
Laravel File Storage delete all files in directory
有没有办法删除特定目录中的所有文件。我试图清除我在 storage\app\backgrounds 中创建的文件夹背景中的所有文件,但在 docs 中似乎没有删除所有文件的方法。
Storage::delete('backgrounds\*.jpg');
您可以使用文件系统方法 cleanDirectory
$success = Storage::cleanDirectory($directory);
有关详细信息,请参阅文档:
https://laravel.com/api/5.5/Illuminate/Filesystem/Filesystem.html#method_cleanDirectory
我认为这不是解决此问题的最佳方法。但我解决了我的电话
use Illuminate\Filesystem\Filesystem;
然后启动新实例
$file = new Filesystem;
$file->cleanDirectory('storage/app/backgrounds');
我通过删除整个目录来处理这个问题,因为我不需要它。但是,无论如何,如果您需要该目录,只需重新创建它就可以了:
$d = '/myDirectory'
Storage::deleteDirectory($d);
Storage::makeDirectory($d);
在 Laravel 5.7 中,您可以像这样使用 Storage
门面清空目录:
Storage::delete(Storage::files('backgrounds'));
$dirs = Storage::directories('backgrounds');
foreach ($dirs as $dir) {
Storage::deleteDirectory($dir);
}
delete()
方法可以接收一组要删除的文件,而 deleteDirectory()
一次删除一个目录(及其内容)。
我认为删除目录然后重新创建目录不是一个好主意,因为这会导致不必要的竞争条件。
use Illuminate\Support\Facades\Storage;
// Get all files in a directory
$files = Storage::allFiles($dir);
// Delete Files
Storage::delete($files);
在Laravel 5.8中你可以使用:
Storage::deleteDirectory('backgrounds');
记得包括:
use Illuminate\Support\Facades\Storage;
//You can use Illuminate\Filesystem\Filesystem and it's method cleanDirectory('path_to_directory).
For Example:
$FolderToDelete = base_path('path_to_your_directory');
$fs = new \Illuminate\Filesystem\Filesystem;
$fs->cleanDirectory($FolderToDelete);
//For Delete All Files From Given Directory.
$succes = rmdir($FolderToDelete);
//For Delete Directory
//This Method Works for me
#Laravel
#FileManager
#CleanDirectory
随便用。
File::cleanDirectory($direction);
有没有办法删除特定目录中的所有文件。我试图清除我在 storage\app\backgrounds 中创建的文件夹背景中的所有文件,但在 docs 中似乎没有删除所有文件的方法。
Storage::delete('backgrounds\*.jpg');
您可以使用文件系统方法 cleanDirectory
$success = Storage::cleanDirectory($directory);
有关详细信息,请参阅文档:
https://laravel.com/api/5.5/Illuminate/Filesystem/Filesystem.html#method_cleanDirectory
我认为这不是解决此问题的最佳方法。但我解决了我的电话
use Illuminate\Filesystem\Filesystem;
然后启动新实例
$file = new Filesystem;
$file->cleanDirectory('storage/app/backgrounds');
我通过删除整个目录来处理这个问题,因为我不需要它。但是,无论如何,如果您需要该目录,只需重新创建它就可以了:
$d = '/myDirectory'
Storage::deleteDirectory($d);
Storage::makeDirectory($d);
在 Laravel 5.7 中,您可以像这样使用 Storage
门面清空目录:
Storage::delete(Storage::files('backgrounds'));
$dirs = Storage::directories('backgrounds');
foreach ($dirs as $dir) {
Storage::deleteDirectory($dir);
}
delete()
方法可以接收一组要删除的文件,而 deleteDirectory()
一次删除一个目录(及其内容)。
我认为删除目录然后重新创建目录不是一个好主意,因为这会导致不必要的竞争条件。
use Illuminate\Support\Facades\Storage;
// Get all files in a directory
$files = Storage::allFiles($dir);
// Delete Files
Storage::delete($files);
在Laravel 5.8中你可以使用:
Storage::deleteDirectory('backgrounds');
记得包括:
use Illuminate\Support\Facades\Storage;
//You can use Illuminate\Filesystem\Filesystem and it's method cleanDirectory('path_to_directory).
For Example:
$FolderToDelete = base_path('path_to_your_directory');
$fs = new \Illuminate\Filesystem\Filesystem;
$fs->cleanDirectory($FolderToDelete);
//For Delete All Files From Given Directory.
$succes = rmdir($FolderToDelete);
//For Delete Directory
//This Method Works for me
#Laravel
#FileManager
#CleanDirectory
随便用。
File::cleanDirectory($direction);