標籤:傳回值 迴圈 dir ext read filename 錯誤輸出 限制 檔案系統
使用遞迴遍曆指定檔案目錄及其子目錄下的所有檔案
思路:
1.開啟目錄;
2.遍曆目錄,判斷是否還是目錄。是目錄則返回第1步,不是目錄進入第三步;
3.把檔案名稱顯示出來
使用到的檔案目錄操作函數:
1.getcwd():擷取當前工作目錄;
2.is_dir():檢查指定的檔案是否是目錄;
3.opendir():開啟目錄控制代碼
——傳回值:
成功則返回目錄控制代碼資源。失敗則返回 FALSE;
如果路徑不是合法目錄,或者由於許可限制或檔案系統錯誤導致的目錄不能開啟,則拋出 E_WARNING 層級的錯誤;
可以通過在函數名稱前添加 ‘@‘ 來隱藏 opendir() 的錯誤輸出。
4.readdir():返回目錄中下一個檔案的檔案名稱
——傳回值:
若成功則返回條目名稱(檔案名稱),失敗則返回 FALSE
5.closedir():關閉目錄控制代碼
主要代碼如下:
echo getcwd().‘的檔案分類樹如下,目錄用紅色顯示:<br />‘;function fileSys($dir=‘./‘){ //開啟目錄 if(is_dir($dir)){ $mydir = opendir($dir); echo ‘<ul>‘; while ($filename = readdir($mydir)){ if($filename != ‘.‘ && $filename != ‘..‘){ //echo $filename.‘<br />‘; $newFile = $dir.‘/‘.$filename;//迴圈目錄下檔案不帶“/” if (is_dir($newFile)){ echo ‘<li><font color="red">‘.$filename.‘</font></li>‘; fileSys($newFile); //調用遞迴遍曆下級目錄 }else{ echo ‘<li>‘.$filename.‘</li>‘; } } } echo ‘</ul>‘; //關閉目錄 closedir($mydir); }else{ echo ‘參數不是一個目錄<br />‘ ; } }//調用函數//echo getcwd().‘是一個目錄,目錄內容如下:<br />‘;fileSys();
PHP-檔案目錄操作