获取系统文件夹以外目录内的所有文件的列表

问题描述:

我是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

嘿,代码工作 - 路径中出现错误:我需要为它添加'/../'。对不起这是我的错! – headkit

+1

您应该真的删除问题或自己添加答案并接受答案。 – Paystey

您可以使用此....

$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()); 
     } 
    } 
} 
+0

当然它给我'txt'字符串。请自行尝试证明。但嘿 - 这不会给我错误,我需要在这里解决... ;-) – headkit

+0

只是更新我的代码来验证目录.. – Baba

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

+0

同样的错误在这里 - 但thanx的尝试! – headkit