/**
  * Detect the descendant resources of the directory.
  *
  * @return array
  */
 protected function detectDirectoryDescendants()
 {
     $descendants = [];
     foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->getPath())) as $file) {
         if ($file->isDir() && !in_array($file->getBasename(), array('.', '..'))) {
             $resource = new DirectoryResource($file, $this->files);
             $descendants[$resource->getKey()] = $resource;
         } elseif ($file->isFile()) {
             $resource = new FileResource($file, $this->files);
             $descendants[$resource->getKey()] = $resource;
         }
     }
     return $descendants;
 }