<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_65843"> <div class="blockcode"> <div id="code_C0n"> <ol> <li> <li> <?php <li>//basename()</li> <li>返迴路徑中的檔案名稱部分</li> <li>$path="D:/lamp/apache2/ htdocs/file.php";</li> <li>echo basename($path)."<br>";</li> <li>//顯示有檔案副檔名的檔案名稱</li> <li>echo basename($path,'php') ."<br>";</li> <li>//顯示不含檔案副檔名的檔案名稱</li> <li>//dirname()</li> <li>去掉檔案名,回傳目錄名稱</li> <li>echo dirname($path)." <br>";</li> <li>//回傳目錄名</li> <li>//pathinfo()</li> <li>傳回一個關於路徑屬性的陣列</li> <li>print_r(pathinfo($path))."<br>";</li> <li>//opendir()</li> <li>開啟指定的目錄</li> <li>//readdir()</li> <li>讀取指定的目錄</li> <li>//closedir()</li> <li>關閉指定的目錄</li> <li>// rewinddir()</li> <li>倒回目錄句柄</li> <li>/*</li> <li>*下面的程式碼來統計目錄下的檔案</li> <li>*/</li> <li>$num=0;</li> <li>//用來統計子目錄和檔案的總個數</li> <li>$dirname="pm3";</li> <li>//定義一個目錄,即需要遍歷的目錄</li> <li>$dir_handle=opendir($dirname);</li> <li>//開啟目錄</li> <li>//將遍歷的內容和檔案名稱使用表格格式輸出</li> <li>echo "<table border="0" align="center" width="600" cellspacing="0" cellpadding="0"> ";<li>echo "<caption><h2>目錄".$dirname."下的內容</h2></caption>";</li> <li>echo "<tr align="left" bgcolor="#cccccc ">";<li>echo "<th>檔案名稱</th> <th>檔案大小</th> <th>檔案類型</th> <th>修改時間</th> </li> </tr>" ;</li> <li>while($file=readdir($dir_handle)){</li> <li>//循環讀取目錄裡的內容,知道最後</li> <li>$dirFile=$dirname."/".$file;</li> <li> //使用目錄名稱和檔案名稱連結起來,這樣在下面的filetype當中才能使用</li> <li>if($num %2==0){</li> <li>//透過單複數來實現隔行變色</li> <li>$bgcolor= "#ffffff";</li> <li>}else{</li> <li>$bgcolor="#cccccc";</li> <li>}</li> <li>echo "<tr bgcolor='".$bgcolor."'>";<li>echo "<td>".$file."</td>";</li> <li>//輸出檔名</li> <li>echo "<td>".filesize($dirFile)."</td>";</li> <li> //輸出檔案大小</li> <li>echo "<td>".filetype($dirFile)."</td>";</li> <li>//輸出檔案類型</li> <li>echo "<td>".filemtime($dirFile )."</td>";</li> <li>//輸出檔案的修改時間</li> <li>echo "</li> </tr>";</li> <li>}</li> <li>echo "</li> </table>";</li> <li>closedir( $dir_handle);</li> <li>echo "<b>目錄".$dirname."下共有".$num."個檔案</b><br>";</li> <li>//disk_free_space()</li> <li> disk_total_space() 統計磁碟大小</li> <li>/*</li> <li>*自訂遞歸函數,統計傳入目錄檔案的大小</li> <li>*/</li> <li>function dirSize($directory){</li> <li>$dir_size=0 ;</li> <li>//定義一個整形的變量,用來累加每個檔案的大小從而計算目錄的大小</li> <li>if($dir_handle=opendir($directory)){</li> <li>//開啟目錄</li> <li> while($fileName=readdir($dir_handle)){</li> <li>//循環讀取目錄中的檔案</li> <li>if($fileName!="." && $fileName!=".."){</li> <li> //一定要排除掉兩個特殊的目錄</li> <li>$subFile=$directory."/".$fileName;</li> <li>//將檔案名稱和目錄名稱連接</li> <li>if(is_dir($subFile)){ </li> <li>//判斷子檔案是否為目錄</li> <li>$dir_size =dirSize($subFile);</li> <li>//如果是目錄,繼續向下循環</li> <li>}</li> <li>if(is_file($subFile) ){</li> <li>//判斷是否為普通檔案</li> <li>$dir_size =filesize($subFile);</li> <li>//取得檔案的大小,並且和前面的檔案大小累積</li> <li>}</li> <li>}</li> <li>}</li> <li>}</li> <li>closedir($dir_handle);</li> <li>//關閉目錄的句柄</li> <li>return $dir_size;</li> <li>}</li> <li>$dir_size=dirSize("pm"))</li> <li>echo "目錄pm3的大小是:".round($dir_size/pow(1024,2),2)."MB";</li> <li>//輸出目錄的大小</li> <li>/*</li> <li>*自定義一個刪除目錄的遞歸函數</li> <li>*/</li> <li>//unlink()</li> <li>將目錄中的檔案刪除掉</li> <li>function delDir($directory){</li> <li>if(file_exists($directory) ){</li> <li>//判斷目錄是否存在</li> <li>if($dir_handle=opendir($directory)){</li> <li>//開啟目錄</li> <li>while($fileName=readdir($dir_handle)){</li> <li>while($fileName=readdir($dir_handle)){</li> <li>//循環讀取目錄下的文件</li> <li>if($fileName!="." && $fileName!=".."){</li> <li>//一定要排除兩個特殊文件,否則你會後悔的</li> <li>$subFile=$directory."/".$fileName;</li> <li>//把檔案名稱和目錄名稱連接起來</li> <li>if(is_dir($subFile)){</li> <li>//如果是目錄,繼續執行本身</li> <li>delDir($subFile);</li> <li>}</li> <li>if(is_file($subFile)){</li> <li>//如果是普通文件,直接刪除</li> <li>unlink($subFile);</li> <li>}</li> <li>}</li> <li>}</li> <li>closedir($dir_handle);</li> <li>//關閉句柄</li> <li>rmdir($directory);</li> <li>//運行到這裡的已經是空目錄了,直接刪除</li> <li>}</li> <li>}}</li> <li>//delDir("pm4");</li> <li>/*</li> <li>*自訂複製或移動目錄的遞迴函數</li> <li>*/</li> <li>//copy()</li> <li>複製一個普通的檔案</li> <li>//mkdir()</li> <li>建立一個目錄</li> <li>function copyDir($directory,$dirTo){</li> <li>//兩個參數,一個是來源目錄,一個是目標目錄</li> <li> if(is_file($dirTo)){</li> <li>//判斷如果目標是一個普通文件,則直接退出方法</li> <li>echo "目標不是一個目錄,無法完成複製";</li> <li>return;</li> <li>} </li> <li>if(!file_exists($dirTo)){</li> <li>//判斷如果目錄不存在,則建立目錄</li> <li>mkdir($dirTo);</li> <li>}</li> <li>if($dir_handle=opendir ($directory)){</li> <li>while($fileName=readdir($dir_handle)){</li> <li>if($fileName!="." && $fileName!=".."){</li> <li>$subFile= $directory."/".$fileName;</li> <li>$subToFile=$dirTo."/".$fileName;</li> <li>if(is_dir($subFile)){</li> <li>copyDir($subFile,$subToFile); </li> <li>}</li> <li>if(is_file($subFile)){</li> <li>copy($subFile,$subToFile);</li> <li>}</li> <li>}</li> <li>}</li> <li>closedir($dir_handle);</li> <li>}</li> <li>closedir($dir_handle);</li> <li>}</li> <li>}</li> <li>copyDir("pm3","pm4");</li> </ol>?></div> <em onclick="copycode($('code_C0n'));"></em> </div>複製程式碼<br> </td></tr></table>複製程式碼<div class="ptg mbm mtn"></div> <div id="comment_65843" class="cm">複製程式碼</div> <div id="post_rate_div_65843"></div> <br>複製程式碼<br> PHP