2013-10-25 50 views
0

以下代码旨在显示目录以及目录内的子目录和其中的文件。我用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); 

问题是什么?为什么我没有获得目录层次结构?

+0

这个错误信息是不是真的很清楚? – Itay

+0

它有帮助吗?您必须使用print_r($ root。$ dir_list [$ var])来检查它返回的路径或print_r(实际路径(dirname(__ FILE __))。'/'。$ dir_list [$ var]); –

+0

http://stackoverflow.com/questions/4202175/php-script-to-loop-through-all-of-the-files-in-a-directory像这样的东西可能会帮助 –

回答

0
chmod(realpath(dirname(__FILE__)).'/'.$dir_list[$var], 0777); 
+0

打印你的真实路径(dirname(__ FILE__) ),然后根据需要连接文件名和文件夹路径 –

+0

,这没有帮助!我为什么要用'dirname(__ FILE __)'?我想打印从根目录开始的目录'DIRECTORY_SEPARATOR' – saplingPro

+0

此外,语句'echo“$ root。$ dir_list [$ var]”'打印如'\ $ AVG ... $ VAULT'或'\。$ AVG' – saplingPro

相关问题