首頁 >後端開發 >php教程 >PHP目錄操作

PHP目錄操作

WBOY
WBOY原創
2016-07-25 08:42:561100瀏覽
  1. //basename()
  2. 返迴路徑中的檔案名稱部分
  3. $path="D:/lamp/apache2/ htdocs/file.php";
  4. echo basename($path)."
    ";
  5. //顯示有檔案副檔名的檔案名稱
  6. echo basename($path,'php') ."
    ";
  7. //顯示不含檔案副檔名的檔案名稱
  8. //dirname()
  9. 去掉檔案名,回傳目錄名稱
  10. echo dirname($path)."
    ";
  11. //回傳目錄名
  12. //pathinfo()
  13. 傳回一個關於路徑屬性的陣列
  14. print_r(pathinfo($path))."
    ";
  15. //opendir()
  16. 開啟指定的目錄
  17. //readdir()
  18. 讀取指定的目錄
  19. //closedir()
  20. 關閉指定的目錄
  21. // rewinddir()
  22. 倒回目錄句柄
  23. /*
  24. *下面的程式碼來統計目錄下的檔案
  25. */
  26. $num=0;
  27. //用來統計子目錄和檔案的總個數
  28. $dirname="pm3";
  29. //定義一個目錄,即需要遍歷的目錄
  30. $dir_handle=opendir($dirname);
  31. //開啟目錄
  32. //將遍歷的內容和檔案名稱使用表格格式輸出
  33. echo " ";
  34. echo "
  35. ";
  36. echo "
  37. ";
  38. echo "
  39. " ;
  40. while($file=readdir($dir_handle)){
  41. //循環讀取目錄裡的內容,知道最後
  42. $dirFile=$dirname."/".$file;
  43. //使用目錄名稱和檔案名稱連結起來,這樣在下面的filetype當中才能使用
  44. if($num %2==0){
  45. //透過單複數來實現隔行變色
  46. $bgcolor= "#ffffff";
  47. }else{
  48. $bgcolor="#cccccc";
  49. }
  50. echo "
  51. ";
  52. echo "
  53. ";
  54. //輸出檔名
  55. echo "
  56. ";
  57. //輸出檔案大小
  58. echo "
  59. ";
  60. //輸出檔案類型
  61. echo "
  62. ";
  63. //輸出檔案的修改時間
  64. echo "
  65. ";
  66. }
  67. echo "
  68. 目錄".$dirname."下的內容

    檔案名稱 檔案大小 檔案類型 修改時間
    ".$file." ".filesize($dirFile)." ".filetype($dirFile)." ".filemtime($dirFile )."
    ";
  69. closedir( $dir_handle);
  70. echo "目錄".$dirname."下共有".$num."個檔案
    ";
  71. //disk_free_space()
  72. disk_total_space() 統計磁碟大小
  73. /*
  74. *自訂遞歸函數,統計傳入目錄檔案的大小
  75. */
  76. function dirSize($directory){
  77. $dir_size=0 ;
  78. //定義一個整形的變量,用來累加每個檔案的大小從而計算目錄的大小
  79. if($dir_handle=opendir($directory)){
  80. //開啟目錄
  81. while($fileName=readdir($dir_handle)){
  82. //循環讀取目錄中的檔案
  83. if($fileName!="." && $fileName!=".."){
  84. //一定要排除掉兩個特殊的目錄
  85. $subFile=$directory."/".$fileName;
  86. //將檔案名稱和目錄名稱連接
  87. if(is_dir($subFile)){
  88. //判斷子檔案是否為目錄
  89. $dir_size =dirSize($subFile);
  90. //如果是目錄,繼續向下循環
  91. }
  92. if(is_file($subFile) ){
  93. //判斷是否為普通檔案
  94. $dir_size =filesize($subFile);
  95. //取得檔案的大小,並且和前面的檔案大小累積
  96. }
  97. }
  98. }
  99. }
  100. closedir($dir_handle);
  101. //關閉目錄的句柄
  102. return $dir_size;
  103. }
  104. $dir_size=dirSize("pm"))
  105. echo "目錄pm3的大小是:".round($dir_size/pow(1024,2),2)."MB";
  106. //輸出目錄的大小
  107. /*
  108. *自定義一個刪除目錄的遞歸函數
  109. */
  110. //unlink()
  111. 將目錄中的檔案刪除掉
  112. function delDir($directory){
  113. if(file_exists($directory) ){
  114. //判斷目錄是否存在
  115. if($dir_handle=opendir($directory)){
  116. //開啟目錄
  117. while($fileName=readdir($dir_handle)){
  118. while($fileName=readdir($dir_handle)){
  119. //循環讀取目錄下的文件
  120. if($fileName!="." && $fileName!=".."){
  121. //一定要排除兩個特殊文件,否則你會後悔的
  122. $subFile=$directory."/".$fileName;
  123. //把檔案名稱和目錄名稱連接起來
  124. if(is_dir($subFile)){
  125. //如果是目錄,繼續執行本身
  126. delDir($subFile);
  127. }
  128. if(is_file($subFile)){
  129. //如果是普通文件,直接刪除
  130. unlink($subFile);
  131. }
  132. }
  133. }
  134. closedir($dir_handle);
  135. //關閉句柄
  136. rmdir($directory);
  137. //運行到這裡的已經是空目錄了,直接刪除
  138. }
  139. }}
  140. //delDir("pm4");
  141. /*
  142. *自訂複製或移動目錄的遞迴函數
  143. */
  144. //copy()
  145. 複製一個普通的檔案
  146. //mkdir()
  147. 建立一個目錄
  148. function copyDir($directory,$dirTo){
  149. //兩個參數,一個是來源目錄,一個是目標目錄
  150. if(is_file($dirTo)){
  151. //判斷如果目標是一個普通文件,則直接退出方法
  152. echo "目標不是一個目錄,無法完成複製";
  153. return;
  154. }
  155. if(!file_exists($dirTo)){
  156. //判斷如果目錄不存在,則建立目錄
  157. mkdir($dirTo);
  158. }
  159. if($dir_handle=opendir ($directory)){
  160. while($fileName=readdir($dir_handle)){
  161. if($fileName!="." && $fileName!=".."){
  162. $subFile= $directory."/".$fileName;
  163. $subToFile=$dirTo."/".$fileName;
  164. if(is_dir($subFile)){
  165. copyDir($subFile,$subToFile);
  166. }
  167. if(is_file($subFile)){
  168. copy($subFile,$subToFile);
  169. }
  170. }
  171. }
  172. closedir($dir_handle);
  173. }
  174. closedir($dir_handle);
  175. }
  176. }
  177. copyDir("pm3","pm4");
?>
複製程式碼
複製程式碼
複製程式碼

複製程式碼
PHP
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn