PHP中获取目录及子目录下的所有文件路径和目录路径


<?php
/* *
 * Created on
 ***************************************
 * 开发者:小虎
 * 联系QQ:529901956
 ***************************************
 */

 /*
function get_allfiles($path, &$files) {
    if(is_dir($path)){
        $dp = dir($path);
        while ($file = $dp ->read()){
            if(!in_array($file, array(".", ".."))){
                $files[] = $path."/".$file;
                get_allfiles($path."/".$file, $files);
            }
        }
        $dp ->close();
    }
    if(file_exists($path)){
        $files[] =  $path;
    }
}
   
function get_filenamesbydir($dir){
    $files =  array();
    get_allfiles($dir, $files);
    $files = array_unique($files);
    return $files;
}
   
$filenames = get_filenamesbydir("E:\Youku Files");
//打印所有文件名,包括路径
foreach ($filenames as $value) {
    echo $value."\n";
}

*/


function searchFile($path, &$file_array, &$folder_array, &$all_array){
    if(is_dir($path)){  //检查文件目录是否存在
        $H = @ opendir($path);
        while(false !== ($_file=readdir($H))){
            //检索目录
            if(is_dir($path."/".$_file) && !in_array($_file, array(".", "..", "Thumbs.db")))
            {
                array_push($folder_array, $path."/".$_file);
                array_push($all_array, $path."/".$_file);
                searchFile($path."/".$_file, $file_array, $folder_array, $all_array);
            //检索文件
            }
            elseif(file_exists($path."/".$_file) && !in_array($_file, array(".", "..", "Thumbs.db")))
            {
                array_push($file_array,$path."/".$_file);
                array_push($all_array, $path."/".$_file);
            }
        }
        closedir($H);
    }elseif(file_exists($path)){
        array_push($file_array, $path);
        array_push($all_array, $path);
    }
}

$file_array=array(); //存放文件名数组  
$folder_array=array(); //存放目录名数组  
$all_array=array(); //存放全部路径的数组 
searchFile('E:\Youku Files', $file_array, $folder_array, $all_array);
foreach ($all_array as $value) {
    echo $value."\n";
}
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值