php目录系统代器 --DirectoryIterator

2021-03-23

提供了一个用于查看文件系统目录内容的简单接口

创建迭代器

// 根据$path创建一个迭代器
$directoryIterator = new DirectoryIterator($path);

迭代

// 获取迭代器当前值,是一个DirectoryIterator对象
$directoryIterator->current();

// 获取当前项的索引
$directoryIterator->key();

// 将迭代器前进一项
$directoryIterator->next();

// 将迭代器倒回开头
$directoryIterator->rewind();

// 将迭代器指定到$position索引的位置
$directoryIterator->seek($position);

// 迭代器foreach循环时会先触发current方法获取当前项,下次循环前触发next方法

获取文件信息

// 获取当前项的文件类型,file,link,dir
$directoryIterator->getType();

// 获取当前项的基本名称,指定$suffix时获取的名称中去除$suffix
$directoryIterator->getBasename($suffix);

// 获取当前项扩展名
$directoryIterator->getExtension();

// 获取当前项名
$directoryIterator->getFilename();

// 获取当前项扩路径
$directoryIterator->getPath();

// 获取当前项扩展名和文件名
$directoryIterator->getPathname();

// 获取当前项字节大小
$directoryIterator->getSize();

// 获取当前项最后访问时间,unix时间戳
$directoryIterator->getATime();

// 获取当前项最后修改时间,unix时间戳
$directoryIterator->getMTime();

验证读写

// 验证当前项是否可读
$directoryIterator->isReadable();

// 验证当前项是否可写
$directoryIterator->isWritable();

// 验证当前项是否可执行
$directoryIterator->isExecutable();

验证文件

// 判断当前项是否为有效文件、目录
$directoryIterator->valid();

// 判断当前项是否为目录
$directoryIterator->isDir();

// 判断当前项是否为目录, .或者为..
$directoryIterator->isDot();

// 判断当前项是否为常规文件
$directoryIterator->isFile();

// 判断当前项是否为有符号连接
$directoryIterator->isLink();

 

{/if}