2

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

$postsDirectory = "../posts/";

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

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

1 回答 1

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();
}
于 2013-01-27T14:55:00.113 回答