From 01f520509e375277ff3eb71cf32a00d5b5ea6dd2 Mon Sep 17 00:00:00 2001 From: floppy0 <31189947+floppy0@users.noreply.github.com> Date: Wed, 7 Mar 2018 15:43:41 +0100 Subject: [PATCH] skip directory feature --- bl-kernel/helpers/filesystem.class.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/bl-kernel/helpers/filesystem.class.php b/bl-kernel/helpers/filesystem.class.php index c07af4e9..1d92b23f 100644 --- a/bl-kernel/helpers/filesystem.class.php +++ b/bl-kernel/helpers/filesystem.class.php @@ -78,7 +78,7 @@ class Filesystem { // If the destination directory not exists is created // $source = /home/diego/example or /home/diego/example/ // $destination = /home/diego/newplace or /home/diego/newplace/ - public static function copyRecursive($source, $destination) + public static function copyRecursive($source, $destination, $skipDirectory=false) { $source = rtrim($source, DS); $destination = rtrim($destination, DS); @@ -99,11 +99,15 @@ class Filesystem { foreach ($iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST) as $item) { - if ($item->isDir()) { - @mkdir($destination.DS.$iterator->getSubPathName()); - } else { - copy($item, $destination.DS.$iterator->getSubPathName()); - } + + $currentDirectory = dirname($item->getPathName()); + if ($skipDirectory !== $currentDirectory) { + if ($item->isDir()) { + @mkdir($destination.DS.$iterator->getSubPathName()); + } else { + copy($item, $destination.DS.$iterator->getSubPathName()); + } + } } return true;