php目录函数操作,以及使用递归
- opendir
- 找到对应的目录
- 将目录中所有文件全部读入到内存(包含子文件夹下的所有文件)
- 将目录指针指向第一个文件
- readdir
- 读取当前指针所指向的文件的文件名
- 2.将目录指针向下移动一位
- chdir
- 改变当前操作目录,代表进入到目标目录
$masterdir = "C:\\Program Files";
function openmydirs($masterdir) { if (is_dir($masterdir)) { $o = opendir($masterdir); while($saiwa = readdir($o)) { if ($saiwa=="." or $saiwa=="..") { continue; } $wholepath = $masterdir."\\".$saiwa;
//这行代码如此重要,因为我们必须拼接出一个完整的路径,才能在下面调用is_dir,chdir等和目录操作有关的函数if(count($myarray)==3) { echo substr($myarray[2],0,2).":"."\n"; } if (is_dir($wholepath)) { chdir($wholepath); openmydirs($wholepath); } echo $wholepath."\n"; } } }
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/12/19 0019 * Time: 上午 1:22 */ $masterdir = "D:\\2,PHP高级核心"; echo strpos($masterdir,"\\",3)."\n"; $storepath = "E:\\mycourse.txt"; $fetarray = array(); function openmydirs($masterdir,$handle) { global $fetarray; if (is_dir($masterdir)) { $o = opendir($masterdir); while($saiwa = readdir($o)) { if ($saiwa=="." or $saiwa=="..") { continue; } $wholepath = $masterdir."\\".$saiwa; $myarray = explode("\\",$wholepath); if(count($myarray)==3) { fwrite($handle,substr($myarray[2],0,2).":"."\r\n") ; } if (is_dir($wholepath)) { chdir($wholepath); openmydirs($wholepath,$handle); } if (is_file($wholepath)) { if(strrpos($wholepath,".wmv")>0) { fwrite($handle,substr($wholepath,strrpos($wholepath,"\\")+1,strrpos($wholepath,".wmv"))."\r\n") ; } } //echo $wholepath."\n"; } } } //$myarray=openmydirs($masterdir); $handle = fopen($storepath,'a'); openmydirs($masterdir,$handle); fclose($handle); ?>