2013-10-25 49 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

相關問題