Laravel File Storage删除目录中的所有文件

ßia*_*rol 10 php file-storage laravel laravel-5.5

有没有办法删除特定目录中的所有文件.我正在尝试清除我在存储\ app\backgrounds中创建的文件夹背景中的所有文件,但在docs中似乎没有删除所有方法.

Storage::delete('backgrounds\*.jpg');
Run Code Online (Sandbox Code Playgroud)

ßia*_*rol 23

我不认为这是解决这个问题的最佳方法.但我解决了我的召唤

use Illuminate\Filesystem\Filesystem;
Run Code Online (Sandbox Code Playgroud)

然后启动新实例

$file = new Filesystem;
$file->cleanDirectory('storage/app/backgrounds');
Run Code Online (Sandbox Code Playgroud)


Ami*_*ari 10

就用它。

 File::cleanDirectory($direction);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,他正在使用外观“文件”(“use File;”或更好的“use Illuminate\Support\Facades\File;”)。您还可以将其与存储磁盘结合使用:`File::cleanDirectory(Storage::disk('some-disk')->path(''));` (4认同)

Mic*_*ano 6

您可以使用文件系统方法cleanDirectory

$success = Storage::cleanDirectory($directory);
Run Code Online (Sandbox Code Playgroud)

请参阅文档以获取更多信息:

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

  • 感谢提示“ cleanDirectory”,但实际上并不能解决调用那些“ Storage :: cleanDirectory”的问题,给我一个错误的“ League \ Flysystem \ Filesystem :: cleanDirectory”。 (6认同)
  • 此方法在存储立面上静态不存在。 (2认同)
  • 调用未定义的方法 League\Flysystem\Filesystem::cleanDirectory laravel 6 (2认同)

小智 6

    use Illuminate\Support\Facades\Storage;

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

    // Delete Files
    Storage::delete($files);
Run Code Online (Sandbox Code Playgroud)


ces*_*pon 5

Laravel 5.8中你可以使用:

Storage::deleteDirectory('backgrounds');
Run Code Online (Sandbox Code Playgroud)

请记住包括:

use Illuminate\Support\Facades\Storage;
Run Code Online (Sandbox Code Playgroud)

  • 实际上,这也会删除目录本身。 (3认同)