返回数组中的文件目录

时间:2013-01-27 14:35:45

标签: php file readdir opendir getcwd

我正在尝试创建一个读取目录并返回数组中所有文件的工作目录的函数,但它无法正常工作。我不知道为什么代码不起作用,你能帮助我吗?

$postsDirectory = "../posts/";

function listFiles() {
    $results = array();
    $handler = opendir($postsDirectory);

    while ($file = readdir($handler)) {
        if ($file != "." && $file != "..") {
            $results[] = getcwd($file);
        }
    }
    closedir($handler);
    return $results;
}

1 个答案:

答案 0 :(得分:0)

getcwd()返回正在执行的脚本的工作目录。它不需要任何参数,它与文件系统上的其他文件无关(“工作目录”的概念对于任意文件也没有意义)。我假设你真正想要的是给定目录中所有目录的列表。

我会使用RecursiveDirectoryIterator

$it = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($postsDirectory),
    FilesystemIterator::SKIP_DOTS
);

$results = array();
while($it->valid()) {
    if($it->isDir()) {
        $results[] = $it->getSubPath();
    }
    $it->next();
}