PHP目錄操作
<?php //basename() 返回路徑中的文件名部分 $path="D:/lamp/apache2/htdocs/file.php"; echo basename($path)."<br>"; //顯示帶有文件擴展名的文件名 echo basename($path,'php')."<br>"; //顯示不帶文件擴展名的文件名 //dirname() 去掉文件名,返回目錄名 echo dirname($path)."<br>"; //返回目錄名 //pathinfo() 返回一個關于路徑屬性的數組 print_r(pathinfo($path))."<br>"; //opendir() 打開指定的目錄 //readdir() 讀取指定的目錄 //closedir() 關閉指定的目錄 //rewinddir() 倒回目錄句柄 /* *下面的代碼來統計一個目錄下的文件 */ $num=0; //用來統計子目錄和文件的總個數 $dirname="pm3"; //定義一個目錄,即需要遍歷的目錄 $dir_handle=opendir($dirname); //打開目錄 //將遍歷的內容和文件名使用表格格式輸出 echo "<table border='0' align='center' width='600' cellspacing='0' cellpadding='0'>"; echo "<caption><h2>目錄".$dirname."下的內容</h2></caption>"; echo "<tr align='left' bgcolor='#cccccc'>"; echo "<th>文件名</th><th>文件大小</th><th>文件類型</th><th>修改時間</th></tr>"; while($file=readdir($dir_handle)){ //循環讀取目錄里的內容,知道最后 $dirFile=$dirname."/".$file; //使用目錄名和文件名鏈接起來,這樣在下面的filetype當中才能使用 if($num++%2==0){ //通過單復數來實現隔行變色 $bgcolor="#ffffff"; }else{ $bgcolor="#cccccc"; } echo "<tr bgcolor='".$bgcolor."'>"; echo "<td>".$file."</td>"; //輸出文件名 echo "<td>".filesize($dirFile)."</td>"; //輸出文件大小 echo "<td>".filetype($dirFile)."</td>"; //輸出文件類型 echo "<td>".filemtime($dirFile)."</td>"; //輸出文件的修改時間 echo "</tr>"; } echo "</table>"; closedir($dir_handle); echo "<b>在目錄".$dirname."下共有".$num."個文件</b><br>"; //disk_free_space() disk_total_space() 統計磁盤大小 /* *自定義一個遞歸函數,統計傳入目錄文件的大小 */ function dirSize($directory){ $dir_size=0; //定義一個整形的變量,用來累加每個文件的大小從而計算目錄的大小 if($dir_handle=opendir($directory)){ //打開目錄 while($fileName=readdir($dir_handle)){ //循環讀取目錄中的文件 if($fileName!="." && $fileName!=".."){ //一定要排除掉兩個特殊的目錄 $subFile=$directory."/".$fileName; //將文件名和目錄名連接 if(is_dir($subFile)){ //判斷子文件是否是目錄 $dir_size+=dirSize($subFile); //如果是目錄,繼續向下循環 } if(is_file($subFile)){ //判斷是否是普通文件 $dir_size+=filesize($subFile); //獲取文件的大小,并和前面的文件大小累加 } } } } closedir($dir_handle); //關閉目錄的句柄 return $dir_size; } $dir_size=dirSize("pm3"); echo "目錄pm3的大小是:".round($dir_size/pow(1024,2),2)."MB"; //輸出目錄的大小 /* *自定義一個刪除目錄的遞歸函數 */ //unlink() 將目錄中的文件刪除掉 function delDir($directory){ if(file_exists($directory)){ //判斷目錄是否存在 if($dir_handle=opendir($directory)){ //打開目錄 while($fileName=readdir($dir_handle)){ //循環讀取目錄下的文件 if($fileName!="." && $fileName!=".."){ //一定要排除兩個特殊文件,否則你會后悔的 $subFile=$directory."/".$fileName; //把文件名和目錄名連接起來 if(is_dir($subFile)){ //如果是目錄,繼續執行本身 delDir($subFile); } if(is_file($subFile)){ //如果是普通文件,直接刪除 unlink($subFile); } } } closedir($dir_handle); //關閉句柄 rmdir($directory); //運行到這的已經是空目錄了,直接刪除 } } } //delDir("pm4"); /* *自定義一個復制或移動目錄的遞歸函數 */ //copy() 復制一個普通的文件 //mkdir() 創建一個目錄 function copyDir($directory,$dirTo){ //兩個參數,一個是源目錄,一個是目標目錄 if(is_file($dirTo)){ //判斷如果目標是一個普通文件,則直接退出方法 echo "目標不是一個目錄,無法完成復制"; return; } if(!file_exists($dirTo)){ //判斷如果目錄不存在,則創建該目錄 mkdir($dirTo); } if($dir_handle=opendir($directory)){ while($fileName=readdir($dir_handle)){ if($fileName!="." && $fileName!=".."){ $subFile=$directory."/".$fileName; $subToFile=$dirTo."/".$fileName; if(is_dir($subFile)){ copyDir($subFile,$subToFile); } if(is_file($subFile)){ copy($subFile,$subToFile); } } } closedir($dir_handle); } } copyDir("pm3","pm4"); ?>
本文由用戶 mmxn 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!