以下代码旨在显示目录以及目录内的子目录和其中的文件。我用chmod
函数来访问目录。为什么我没有获得目录层次结构?
此代码运行但不显示目录层次结构,这意味着它无法列出子目录和里面的文件。
当我运行该脚本,我得到这样的警告:
Warning: chmod(): No such file or directory in E:\Installed_Apps\xampp\htdocs\dlist.php on line 5
-
#recursive function
function directory_f_lister($root) {
$dir_list = scandir($root);
for($var=0;$var<count($dir_list);$var++) {
$bool = chmod($root.$dir_list[$var], 0777);
if(is_readable($root.$dir_list[$var])) {
if(is_dir($root.$dir_list[$var])) {
if($dir_list[$var] === "." || $dir_list[$var] === "..") continue;
echo "<h3>Name of directory $dir_list[$var]</h3>";
echo "<br />";
$dh = opendir($root.$dir_list[$var]);
while(($name = readdir($dh)) !== false) {
if(is_dir($root.$dir_list[$var].$name)) {
if($dir_list[$var] === "." || $dir_list[$var] === "..") continue;
echo "Name of directory : <strong> $name </strong>";
echo "<br />";
directory_f_lister($root.$dir_list[$var].$name);
}else {
echo $name;
echo "<br/>";
}
}
}
} else { "<b>else statement <br /> </b>"; }
}
}
directory_f_lister(DIRECTORY_SEPARATOR);
问题是什么?为什么我没有获得目录层次结构?
这个错误信息是不是真的很清楚? – Itay
它有帮助吗?您必须使用print_r($ root。$ dir_list [$ var])来检查它返回的路径或print_r(实际路径(dirname(__ FILE __))。'/'。$ dir_list [$ var]); –
http://stackoverflow.com/questions/4202175/php-script-to-loop-through-all-of-the-files-in-a-directory像这样的东西可能会帮助 –