我正在尝试显示文件夹树。它的工作都很好。下面是代码。
$fileData = fillArrayWithFileNodes( new DirectoryIterator( $dir ) );
function fillArrayWithFileNodes( DirectoryIterator $dir )
{
$data = array();
foreach ( $dir as $node )
{
if ( $node->isDir() && !$node->isDot() )
{
$data[$node->getFilename()] = fillArrayWithFileNodes( new DirectoryIterator( $node->getPathname() ) );
}
else if ( $node->isFile() )
{
$data[] = $node->getFilename();
}
}
return $data;
}
但我有一个新的要求。我想在课堂上使用它,这样我就可以这样使用它。
$tree = new folderTree();
$structure = $tree->display('testdir',2); //2 is the level of subfolders
所以我用下面的方式把所有东西都包装在一个类中。
class folderTree {
function display($dir,$level='') {
$fileData = fillArrayWithFileNodes( new DirectoryIterator( $dir ) );
function fillArrayWithFileNodes( DirectoryIterator $dir )
{
$data = array();
foreach ( $dir as $node )
{
if ( $node->isDir() && !$node->isDot() )
{
$data[$node->getFilename()] = fillArrayWithFileNodes( new DirectoryIterator( $node->getPathname() ) );
}
else if ( $node->isFile() )
{
$data[] = $node->getFilename();
}
}
return $data;
}
}
}
但我真的被困在如何使用关卡上。
什么是水平?
-folder
-childfolder (level1)
file1
file2
-subchildfolder (level2)
file1
file2