0

我是 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::__construct(/myYiiInstallation/system/path/to/files) [directoryiterator.--construct]: 无法打开 dir: 没有这样的文件或目录

从线

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

那么有没有另一种方法来获取文件列表或者我应该怎么做?谢谢!

4

2 回答 2

2

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

于 2012-05-02T16:59:13.550 回答
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 () );
        }
    }
}
于 2012-05-02T16:47:57.260 回答