From 8f6db1c96fb2fb3cf2796c5bb5e5706f7e7a0362 Mon Sep 17 00:00:00 2001 From: Dion Hulse Date: Sun, 7 Feb 2010 02:15:27 +0000 Subject: [PATCH] Use rename() if possible in WP_Filesystem_Direct::move(). Props reaperhulk. Fixes #12150 git-svn-id: https://develop.svn.wordpress.org/trunk@13001 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/includes/class-wp-filesystem-direct.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wp-admin/includes/class-wp-filesystem-direct.php b/wp-admin/includes/class-wp-filesystem-direct.php index e4ec1acea2..c603ce7045 100644 --- a/wp-admin/includes/class-wp-filesystem-direct.php +++ b/wp-admin/includes/class-wp-filesystem-direct.php @@ -196,11 +196,18 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base { function copy($source, $destination, $overwrite = false) { if ( ! $overwrite && $this->exists($destination) ) return false; + return copy($source, $destination); } function move($source, $destination, $overwrite = false) { - //Possible to use rename()? + if ( ! $overwrite && $this->exists($destination) ) + return false; + + // try using rename first. if that fails (for example, source is read only) try copy + if ( @rename($source, $destination) ) + return true; + if ( $this->copy($source, $destination, $overwrite) && $this->exists($destination) ) { $this->delete($source); return true;