PHP目錄操作

mmxn 9年前發布 | 960 次閱讀 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!