2014-04-12 231 views
1

我有以下行的一個問題:RecursiveDirectoryIterator構造函數返回空對象

$iterator = new RecursiveDirectoryIterator($directory); 

此代碼返回一個空的對象,即使$目錄文件夾中包含至少一個文件。我也加倍檢查了$目錄的值,這是正確的路徑

有什麼問題?

回答

0

試試這個,

$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($path), 
    RecursiveIteratorIterator::SELF_FIRST 
); 

它應該讓你一個文件列表或拋出異常。

+0

感謝您的回答。 我試過代碼,並在那之後放了一個print_f,我得到的全部是RecursiveIteratorIterator對象() – Zack

+0

整個代碼是: $ iterator = new RecursiveDirectoryIterator($ directory); $ iterator-> setFlags(RecursiveDirectoryIterator :: SKIP_DOTS); $ filter = new MyRecursiveFilterIterator($ iterator); $ all_files = new RecursiveIteratorIterator($ filter,RecursiveIteratorIterator :: SELF_FIRST); 它顯示此錯誤:致命錯誤:調用未定義的方法RecursiveDirectoryIterator :: setFlags() – Zack

+0

不用擔心,對不起,我是不對的。 – dops

1

嘗試使用foreach,因爲即使對象不爲空,print_f也會輸出空對象。 你可以這樣查看:

foreach ($iterator as $name => $file) { 
    echo $file->getRealPath().'<br>'; 
}