在laravel中创建文件夹之前我怎么知道文件夹是否存在?

TuG*_*llo 37 php laravel laravel-4

在创建之前我需要知道文件夹是否存在,这是因为我将图片存储在里面,我担心如果覆盖文件夹会删除图片.我必须创建一个文件夹的代码如下

$path = public_path().'/images';
File::makeDirectory($path, $mode = 0777, true, true);
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

mis*_*tin 57

请参阅:file_exists()

用法:

if (!file_exists($path)) {
    // path does not exist
}
Run Code Online (Sandbox Code Playgroud)

在Laravel:

if(!File::exists($path)) {
    // path does not exist
}
Run Code Online (Sandbox Code Playgroud)


sua*_*ger 22

使用Laravel,您可以使用:

$path = public_path().'/images';
File::isDirectory($path) or File::makeDirectory($path, 0777, true, true);
Run Code Online (Sandbox Code Playgroud)

顺便说一下,您也可以将子文件夹作为参数放在Laravel路径帮助函数中,如下所示:

$path = public_path('images/');
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢在这个答案中优雅地使用`或`. (2认同)

Ada*_*dam 11

在 Laravel 5.x/6 中,你可以使用Storage Facade来做到这一点:

use Illuminate\Support\Facades\Storage;

$path = "path/to/folder/";

if(!Storage::exists($path)){
    Storage::makeDirectory($path);
}
Run Code Online (Sandbox Code Playgroud)


4un*_*kur 6

你也可以调用 File facade 的这个方法:

File::ensureDirectoryExists('/path/to/your/folder')
Run Code Online (Sandbox Code Playgroud)

如果文件夹不存在,则创建一个文件夹,如果存在,则不执行任何操作

  • File 方法的命名空间:使用 Illuminate\Support\Facades\File; (5认同)
  • 此方法自 Laravel v6.13.0 起可用 (2认同)

edi*_*999 5

推荐的方法是使用

if (!File::exists($path))
{

}
Run Code Online (Sandbox Code Playgroud)

查看源代码

如果您查看代码,它正在调用 file_exists()


Ati*_*qur 5

方式-1:

if(!is_dir($backupLoc)) {

    mkdir($backupLoc, 0755, true);
}
Run Code Online (Sandbox Code Playgroud)

方式-2:

if (!file_exists($backupLoc)) {

    mkdir($backupLoc, 0755, true);
}
Run Code Online (Sandbox Code Playgroud)

方式-3:

if(!File::exists($backupLoc)) {

    File::makeDirectory($backupLoc, 0755, true, true);
}
Run Code Online (Sandbox Code Playgroud)

不要忘记使用 Illuminate\Support\Facades\File;

方式-4:

if(!File::exists($backupLoc)) {

    Storage::makeDirectory($backupLoc, 0755, true, true);
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您必须首先将配置放在 config 文件夹 filesystems.php 中。[除非您使用外部磁盘,否则不推荐使用]