From 1ef5b8d01f302eceebd324ad1e041ec6b158fa08 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 8 Oct 2017 19:10:42 +0200 Subject: [PATCH] Fix edge case file_exists --- System/File/Local/Directory.php | 4 ++++ System/File/Local/File.php | 8 ++++++++ 2 files changed, 12 insertions(+) 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;