xp-framework / io-collections
XP Framework 的 I/O 集合
v10.1.0
2024-03-24 11:35 UTC
Requires
- php: >=7.0.0
- xp-framework/core: ^12.0 | ^11.0 | ^10.2
Requires (Dev)
- xp-framework/unittest: ^11.0 | ^10.0 | ^9.0 | ^8.0 | ^7.0 | ^6.5
README
API
访问 I/O 集合的入口点是 io.collections.IOCollection
实现
io.collections.FileCollection
- 指定文件系统路径中的文件io.collections.ArchiveCollection
- XAR 归档内的文件
要访问多个集合中的文件,请使用 io.collections.CollectionComposite
类。
迭代
子包 io.collections.iterate
允许迭代 I/O 集合。
io.collections.iterate.IOCollectionIterator
- 迭代给定的 I/O 集合,可选地递归io.collections.iterate.FilteredIOCollectionIterator
- 如上所述,但带有可选的过滤器
过滤器
以下过滤器可用
基于日期
io.collections.iterate.AccessedAfterFilter(util.Date $date)
io.collections.iterate.AccessedBeforeFilter(util.Date $date)
io.collections.iterate.CreatedAfterFilter(util.Date $date)
io.collections.iterate.CreatedBeforeFilter(util.Date $date)
io.collections.iterate.ModifiedAfterFilter(util.Date $date)
io.collections.iterate.ModifiedBeforeFilter(util.Date $date)
基于大小
io.collections.iterate.SizeEqualsFilter(int $compare)
io.collections.iterate.SizeBiggerThanFilter(int $limit)
io.collections.iterate.SizeSmallerThanFilter(int $limit)
基于名称
io.collections.iterate.ExtensionEqualsFilter(string $compare)
io.collections.iterate.NameEqualsFilter(string $compare)
io.collections.iterate.NameMatchesFilter(string $pattern)
io.collections.iterate.UriMatchesFilter(string $pattern)
基于类型
io.collections.iterate.CollectionFilter()
要组合过滤器,请使用 util.Filters
类。
示例
此示例查找目录 /home/thekid/multimedia
内的所有 JPEG 文件
use io\collections\FileCollection; use io\collections\iterate\{FilteredIOCollectionIterator, ExtensionEqualsFiler}; use util\cmd\Console; use util\Filters; $iterator= new FilteredIOCollectionIterator( new FileCollection('/home/thekid/multimedia'), Filters::allOf([new ExtensionEqualsFilter('.jpg'), new ExtensionEqualsFilter('.JPG')]), true ); foreach ($iterator as $file) { Console::writeLine($file); }