欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP目录操作

程序员文章站 2022-03-26 16:22:17
...
  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("pm3");
  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. //循环读取目录下的文件
  119. if($fileName!="." && $fileName!=".."){
  120. //一定要排除两个特殊文件,否则你会后悔的
  121. $subFile=$directory."/".$fileName;
  122. //把文件名和目录名连接起来
  123. if(is_dir($subFile)){
  124. //如果是目录,继续执行本身
  125. delDir($subFile);
  126. }
  127. if(is_file($subFile)){
  128. //如果是普通文件,直接删除
  129. unlink($subFile);
  130. }
  131. }
  132. }
  133. closedir($dir_handle);
  134. //关闭句柄
  135. rmdir($directory);
  136. //运行到这的已经是空目录了,直接删除
  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. }
  175. copyDir("pm3","pm4");
  176. ?>
复制代码

PHP
相关标签: PHP目录操作