从文件夹中获取文件名数组的 Laravel 方法

6
我正在从文件夹中获取一个文件名数组,就像这样...
$files = File::allFiles('myfolder/');

但是生成的数组也包含了路径名。

有没有一种方法只得到文件名的数组?还是我需要处理每个数组项并从中提取文件名?

3个回答

17

还有另一种获取文件名的方法:

public function index() {

    $filesInFolder = \File::files('folder');     
    foreach($filesInFolder as $path) { 
          $file = pathinfo($path);
          echo $file['filename'] ;
     } 
} 

pathinfo将为您提供输出:

{ "dirname":"file_path", "basename":"file_name.file_extension", "extension":"file_extension", "filename":"file_name" }

谢谢,这是一个很好的替代方案。 - fightstarr20

3

希望能对您有所帮助:

public function parse() {
    $fileNames = [];
    $path = public_path('other');
    $files = \File::allFiles($path);

    foreach($files as $file) {
        array_push($fileNames, pathinfo($file)['filename']);
    }

    dd($fileNames);
}

1

尝试使用 Laravel 存储 API:

use Illuminate\Support\Facades\Storage;

//...

$files = Storage::disk('diskName')->allFiles('folderName');
$fileNames = array_map(function($file){
    return basename($file); // remove the folder name
}, $files);
          



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接