我是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!
答案 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 () );
}
}
}