示例#1
0
 /**
  * Get file iterator of current dir.
  *
  * @param  boolean $recursive True to resursive.
  *
  * @return  \FilesystemIterator|\RecursiveIteratorIterator  File & dir iterator.
  */
 public function getIterator($recursive = false)
 {
     // If we put this object into a foreach, return all files and folders to iterator.
     return Filesystem::items((string) $this, $recursive);
 }
示例#2
0
 /**
  * items
  *
  * @param string   $path
  * @param boolean  $recursive
  * @param integer  $pathType
  *
  * @return  array
  */
 public static function items($path, $recursive = false, $pathType = self::PATH_ABSOLUTE)
 {
     $files = array();
     $pathLength = strlen($path);
     /** @var $file \SplFileInfo */
     foreach (Filesystem::items($path, $recursive) as $file) {
         switch ($pathType) {
             case $pathType === self::PATH_BASENAME:
                 $name = $file->getBasename();
                 break;
             case $pathType === static::PATH_RELATIVE:
                 $pathLength = strlen($path);
                 $name = $file->getRealPath();
                 $name = trim(substr($name, $pathLength), DIRECTORY_SEPARATOR);
                 break;
             case $pathType === static::PATH_ABSOLUTE:
             default:
                 $name = $file->getPathname();
                 break;
         }
         $files[] = $name;
     }
     return $files;
 }
示例#3
0
 /**
  * Method to test items().
  *
  * @return void
  *
  * @covers Windwalker\Filesystem\Filesystem::items
  */
 public function testItems()
 {
     $items = Filesystem::items(static::$dest . '/folder1/level2', true, true);
     $this->assertEquals(FilesystemTestHelper::cleanPaths(array(static::$dest . '/folder1/level2/file3')), FilesystemTestHelper::cleanPaths($items));
     // Recursive
     $items = Filesystem::items(static::$dest, true, true);
     $compare = FilesystemTestHelper::getItemsRecursive('dest');
     $this->assertEquals(FilesystemTestHelper::cleanPaths($compare), FilesystemTestHelper::cleanPaths($items));
     // Iterator
     $items = Filesystem::items(static::$dest, true);
     $this->assertInstanceOf('CallbackFilterIterator', $items);
     $items2 = Filesystem::iteratorToArray($items);
     $this->assertEquals(FilesystemTestHelper::cleanPaths($compare), FilesystemTestHelper::cleanPaths($items2));
     $items->rewind();
     $this->assertInstanceOf('SplFileinfo', $items->current());
 }