使用Laravel File :: allFiles排除文件夹

时间:2017-01-07 02:07:33

标签: image laravel file directory

我目前正在使用以下功能:

public function recentImages(){
    foreach(\File::allFiles("up") as $path){
        $files[] = pathinfo($path);
    }
    return view('recent-images-view')->with('files',$files);
}

要列出我的上传文件夹中的所有图片,但这也包括在名为" thumb"的分隔文件夹中分隔的缩略图。

我想知道是否有任何方法告诉allFiles函数排除名称为thumbs的文件夹。或者我应该完全不同地处理这个?

提前感谢您提供任何信息。

1 个答案:

答案 0 :(得分:3)

File::allFiles()将以递归方式获取给定目录中的所有文件。尝试使用File::files(),它将仅从给定目录中获取所有文件。

<强>更新

因为您有其他需要的目录。我提出了以下解决方案。

public function images(){
    foreach(\File::directories('up') as $dir) { // Get all the directories
        if(str_contains('thumbs', $dir)) { // Ignore thumbs directory
            continue;
        }            

        foreach(\File::files($dir) as $path) { // Get all the files in each directory
            $files[] = pathinfo($path);
        }
    }

    return view('recent-images-view')->with('files',$files);
}

没有测试它,概念是获取所有目录并通过忽略不需要的目录获取这些目录中的所有文件。