This package allows you to quickly create, use and delete a temporary directory in the system's temporary directory.
Here's a quick example on how to create a temporary directory and delete it:
use Spatie\TemporaryDirectory\TemporaryDirectory;
$temporaryDirectory = (new TemporaryDirectory())->create();
// Get a path inside the temporary directory
$temporaryDirectory->path('temporaryfile.txt');
// Delete the temporary directory and all the files inside it
$temporaryDirectory->delete();
You can install the package via composer:
composer require spatie/temporary-directory
To create a temporary directory simply call the create
method on a TemporaryDirectory
object. By default the temporary directory will be created in a timestamped directory in your system's temporary directory (usually /tmp
).
(new TemporaryDirectory())->create();
If you want to use a custom name for your temporary directory instead of the timestamp call the name
method with a string $name
argument before the create
method.
(new TemporaryDirectory())
->name($name)
->create();
By default an exception will be thrown if a directory already exists with the given argument. You can override this behaviour by calling the force
method in combination with the name
method.
(new TemporaryDirectory())
->name($name)
->force()
->create();
You can set a custom location in which your temporary directory will be created by passing a string $location
argument to the TemporaryDirectory
constructor.
(new TemporaryDirectory($location))
->create();
Optionally you can call the location
method with a $location
argument.
(new TemporaryDirectory())
->location($location)
->create();
You can use the path
method to determine the full path to a file or directory in the temporary directory:
$temporaryDirectory = (new TemporaryDirectory())->create();
$temporaryDirectory->path('dumps/datadump.dat'); // return /tmp/1485941876276/dumps/datadump.dat
Use the clean
method to delete all the files inside the temporary directory.
$temporaryDirectory->clean();
Once you're done processing your temporary data you can delete the entire temporary directory using the delete
method. All files inside of it will be deleted.
$temporaryDirectory->delete();