获取系统文件夹外部目录中所有文件的列表

时间:2012-05-02 16:21:20

标签: php yii

我是yii的新手,我需要获取系统文件夹之外的目录中的文件列表。我尝试了

        $fileListOfDirectory = array();
        $pathTofileListDirectory = Yii::app()->request->baseUrl.'/path/to/files';
        foreach( new DirectoryIterator($pathTofileListDirectory) as $file) {
            if( $file->isFile() === TRUE && $file->getBasename() !== '.DS_Store' && substr(strrchr($file->getPathname(), '.'), 1) == 'txt') {
                array_push($fileListOfDirectory, $file->getBasename());
            }
        }

但我总是得到错误

  

DirectoryIterator :: __构建体(/ myYiiInstallation /系统/路径/到/文件)   [directoryiterator .--构造]:   无法打开目录:没有这样的文件或目录

来自

foreach( new DirectoryIterator($pathTofileListDirectory) as $file) {

那么有另一种方法来获取文件列表或我该怎么办? 日Thnx!

2 个答案:

答案 0 :(得分:2)

我认为您应该尝试http://www.yiiframework.com/doc/api/1.1/CApplication#basePath-detail而不是在文件系统中使用baseUrl。

答案 1 :(得分:1)

你可以使用这个....

$fileListOfDirectory = array ();
$pathTofileListDirectory = Yii::app()->request->baseUrl.'/path/to/files' ;

if(!is_dir($pathTofileListDirectory ))
{
    die(" Invalid Directory");
}

if(!is_readable($pathTofileListDirectory ))
{
    die("You don't have permission to read Directory");
}

foreach ( new DirectoryIterator ( $pathTofileListDirectory ) as $file ) {
    if ($file->isFile () === TRUE && $file->getBasename () !== '.DS_Store') {

        if ($file->getExtension () == "txt") {
            array_push ( $fileListOfDirectory, $file->getBasename () );
        }
    }
}