it-swarm.com.de

Laravel Dateispeicher löschen Sie alle Dateien im Verzeichnis

Gibt es eine Möglichkeit, alle Dateien in einem bestimmten Verzeichnis zu löschen. Ich versuche, alle meine Dateien in meinen erstellten Ordnerhintergründen in Ablage\App\Hintergründe zu löschen, aber in docs scheint keine Methode zum Löschen aller Dateien zu existieren.

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

Ich denke nicht, ob dies der beste Weg ist, um das zu lösen. Aber ich habe meine Berufung gelöst

use Illuminate\Filesystem\Filesystem;

Dann neue Instanz einleiten

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

Sie können die Filesystem-Methode cleanDirectory verwenden

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

Weitere Informationen finden Sie in der Dokumentation:

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

3
Michael Bausano

In Laravel 5.8 können Sie Folgendes verwenden:

Storage::deleteDirectory('backgrounds');

Denken Sie daran, Folgendes einzuschließen:

use Illuminate\Support\Facades\Storage;
1
cespon

In Laravel 5.7 können Sie ein Verzeichnis mit der Storage-Fassade wie folgt leeren:

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

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

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

Die delete()-Methode kann ein Array von zu löschenden Dateien empfangen, während deleteDirectory() jeweils ein Verzeichnis (und dessen Inhalt) löscht.

Ich denke nicht, dass es eine gute Idee ist, das Verzeichnis zu löschen und dann neu zu erstellen, da dies zu unerwünschten Race-Bedingungen führen kann.

1
Soulriser
//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
0
    use Illuminate\Support\Facades\Storage;

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

    // Delete Files
    Storage::delete($files);

Ich erledige das, indem ich das gesamte Verzeichnis lösche, da ich es nicht brauche. Wenn Sie jedoch auf jeden Fall das Verzeichnis benötigen, sollten Sie es gut machen, indem Sie es einfach neu erstellen:

$d = '/myDirectory'
Storage::deleteDirectory($d);
Storage::makeDirectory($d);
0
brnd0