Search code examples
phpowncloud

Recursive directory listing in ownCloud


I'm writing code that I'd like to recursively list directories. So far I've written code that lists level 1 directories. Does anyone have any ideas about how I can recurse infinitely?

$res = OC_Files::getDirectoryContent('');
$list = array();
foreach($res as $file) {
    if ($file['type'] == 'dir') {
        $res1 = OC_Files::getDirectoryContent('/'.$file['name']);
        foreach($res1 as $res2) {
            if ($res2['type'] == 'file') $list[] = $file['name'].'/'.$res2['name'];
        }

    } else $list[] = $file['name'];
}

foreach($list as $entry)
echo $entry.'</br>';

Solution

  • Try this:

    function traverse_directory($dir) {
        $res = OC_Files::getDirectoryContent($dir);
        $list = array();
        foreach($res as $file) {
            if ($file['type'] == 'dir') {
                traverse_directory($dir . '/' . $file['name'])
            } else {
                $list[] = $file['name'];
            }
        }
        foreach($list as $entry) {
            echo $entry.'</br>';
        }
    }
    
    traverse_directory('');