Using Laravel’s deleteDirectory to delete folders and their contents

If you ever needed a simple solution in Laravel to delete an entire directory and its contents the File facade has the answer.

deleteDirectory() will delete everything, both files and folders down the tree from the path specified.

deleteDirectory($directoryPath, $preserve = false);

In this example:

use Illuminate\Support\Facades\File;

File::deleteDirectory(storage_path('app/private'));

Everything in storage/app/private will be deleted and the now empty private folder will also be deleted.

You can prevent this parent folder deletion by passing in a second parameter (preserve) as true:

File::deleteDirectory(storage_path('app/private'), true);

deleteDirectory() returns a bool as a result of its execution.

This method is very handing in development for use with ‘seeding’ to clean up old storage folders and files to start fresh.

Always be aware of the path you pass in as deleting entire directories can be devastating.