I’m finalizing a code segment that lists the files in a directory. I have no problems listing the files in a directory but for some reason I can get the isDot() method to work to make sure the file isn’t a “.” or “..” . The following below results in this error:
Fatal error: Call to undefined method SplFileInfo::isDot() in ....
Before I switched over to using the Recursive Iterator I was using the Directory Iterator and it worked fine. Is there anything wrong with the code below? It should work.
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathToFolder));
//if there is a subdirectory it makes sure the proper extension is passed
foreach($files as $name => $file){
if (!$file->isDot()) { //this is where it shuts me down
$realfile = str_replace($pathToFolder, "", $file);
$url = getDownloadLink($folderID, $realfile);
$fileArray[] = $url;
}
}
This is, because
DirectoryIterator::current()(the method, that is call within aforeach-loop) returns an object, which is itself of typeDirectoryIterator.FileSystemIterator(thatRecursiveDirectoryIteratorextends) returns an object ofSplFileInfobe default. You can influence, what is return, via flagsBut in your case, you don’t need to test, if an item is a dot-file. Just set
FilesystemIterator::SKIP_DOTSand they will not appear at all. Note, that this is also the default behavior.