diff --git a/System/File/Local/Directory.php b/System/File/Local/Directory.php index f80705a42..25f1c2aea 100644 --- a/System/File/Local/Directory.php +++ b/System/File/Local/Directory.php @@ -318,6 +318,8 @@ class Directory extends FileAbstract implements DirectoryInterface if (!file_exists($to)) { self::create($to, 0644, true); + } elseif($overwrite && file_exists($to)) { + self::delete($to); } foreach ($iterator = new \RecursiveIteratorIterator( @@ -345,6 +347,8 @@ class Directory extends FileAbstract implements DirectoryInterface if (!$overwrite && file_exists($to)) { return false; + } elseif($overwrite && file_exists($to)) { + self::delete($to); } if (!self::exists(self::parent($to))) { diff --git a/System/File/Local/File.php b/System/File/Local/File.php index 1e9107d4e..6cd2954fe 100644 --- a/System/File/Local/File.php +++ b/System/File/Local/File.php @@ -268,6 +268,10 @@ class File extends FileAbstract implements FileInterface Directory::create(dirname($to), 0644, true); } + if($overwrite && file_exists($to)) { + unlink($to); + } + copy($from, $to); return true; @@ -290,6 +294,10 @@ class File extends FileAbstract implements FileInterface Directory::create(dirname($to), 0644, true); } + if($overwrite && file_exists($to)) { + unlink($to); + } + rename($from, $to); return true;