kiwilan/php-filelist

用于递归列出文件的PHP包,可导出为JSON格式。

资助包维护!
kiwilan

0.1.01 2024-08-24 14:47 UTC

README

Banner with rocks and PHP FileList title

php version downloads license tests codecov

用于递归列出文件的PHP包,可导出为JSON格式。

注意

此包的目的是提供一个简单的方法来列出目录中的文件,并提供自定义扫描的选项。但真正的功能是使用自定义的二进制文件,如果您想添加一个有趣的二进制文件,可以提交一个问题或拉取请求。

安装

您可以通过composer安装此包

composer require kiwilan/php-filelist

使用方法

$list = FileList::make('/path/to/scan')->run();

$list->getFiles(); // List of files as `string[]`
$list->getSplFiles(); // List of SplFileInfo as `SplFileInfo[]`
$list->getErrors(); // List of errors as `string[]|null`
$list->getTimeElapsed(); // Time elapsed in seconds as `float`
$list->getTotal(); // Total files as `int`
$list->isSuccess(); // Success status as `bool`

选项

显示隐藏文件,默认为false

$list = FileList::make('/path/to/scan')->showHidden()->run();

保存为JSON。

$list = FileList::make('/path/to/scan')->saveAsJson('/path/to/json')->run();

错误时抛出异常,否则错误存储在列表中。

$list = FileList::make('/path/to/scan')->throwOnError()->run();

限制要扫描的文件数量。

$list = FileList::make('/path/to/scan')->limit(100)->run();

仅获取具有特定扩展名的文件,不区分大小写。

$list = FileList::make('/path/to/scan')->onlyExtensions(['txt', 'md'])->run();

跳过扩展名,不区分大小写。

$list = FileList::make('/path/to/scan')->skipExtensions(['txt', 'md'])->run();

跳过文件名。

$list = FileList::make('/path/to/scan')->skipFilenames(['file.txt', 'README.md'])->run();

禁用递归扫描。

$list = FileList::make('/path/to/scan')->notRecursive()->run();

禁用PHP内存限制。

$list = FileList::make('/path/to/scan')->noMemoryLimit()->run();

使用自定义二进制文件

如果您想添加新的二进制文件,可以提交一个问题或拉取请求。

find

使用find二进制文件来列出目录中的文件,如果不在您的PATH中,可以将二进制文件的路径作为withFind()方法的参数。

$list = FileList::make('/path/to/scan')->withFind()->run();

scout-seeker

使用scout-seeker二进制文件来列出目录中的文件,如果不在您的PATH中,可以将二进制文件的路径作为withScoutSeeker()方法的参数。

重要

您可以使用Cargo(Rust包管理器)安装scout-seeker(v0.2.11 min)

cargo install scout-seeker

二进制文件scout-seeker是一个用于列出文件的Rust CLI工具,您可以在这里找到源代码。

$list = FileList::make('/path/to/scan')->withScoutSeeker()->run();

测试

composer test

更新日志

有关最近更改的更多信息,请参阅更新日志

感谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件