示例#1
0
function recursiveCopy($filename, $initialfolder, $targetfolder)
{
    $badfiles = ['vendor', 'node_modules', '.DS_Store', 'sftp-config.json', '.git', '.gitignore', 'build.sh'];
    foreach (Folder::items($initialfolder . '/' . $filename, false, Folder::PATH_BASENAME) as $item) {
        if (!in_array($item, $badfiles)) {
            if (is_dir($initialfolder . '/' . $filename . '/' . $item)) {
                recursiveCopy($item, $initialfolder . '/' . $filename, $targetfolder . '/' . $filename);
            } else {
                File::copy($initialfolder . '/' . $filename . '/' . $item, $targetfolder . '/' . $filename . '/' . $item);
            }
        }
    }
}
 /**
  * Method to test items().
  *
  * @return void
  *
  * @covers Windwalker\Filesystem\Folder::items
  */
 public function testItems()
 {
     $items = Folder::items(static::$dest . '/folder1/level2', true);
     $this->assertEquals(FilesystemTestHelper::cleanPaths(array(static::$dest . '/folder1/level2/file3')), FilesystemTestHelper::cleanPaths($items));
     // No full name
     $items = Folder::items(static::$dest . '/folder1/level2', true, Folder::PATH_BASENAME);
     $this->assertEquals(FilesystemTestHelper::cleanPaths(array('file3')), FilesystemTestHelper::cleanPaths($items));
     // Recursive
     $items = Folder::items(static::$dest, true, Folder::PATH_ABSOLUTE);
     $compare = FilesystemTestHelper::getItemsRecursive('dest');
     $this->assertEquals(FilesystemTestHelper::cleanPaths($compare), FilesystemTestHelper::cleanPaths($items));
 }