From addfe4580cca60219ee6fd8345db59a3fe910a1d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Wed, 15 Jun 2011 10:35:29 +0000 Subject: [PATCH] New: Add option nophperrors on files functions --- htdocs/lib/files.lib.php | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/htdocs/lib/files.lib.php b/htdocs/lib/files.lib.php index 794a718baca..374ca8a29a2 100644 --- a/htdocs/lib/files.lib.php +++ b/htdocs/lib/files.lib.php @@ -567,9 +567,10 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disable * Remove a file or several files with a mask * @param file File to delete or mask of file to delete * @param disableglob Disable usage of glob like * + * @param nophperrors Disable all PHP output errors * @return boolean True if file is deleted, False if error */ -function dol_delete_file($file,$disableglob=0) +function dol_delete_file($file,$disableglob=0,$nophperrors=0) { //print "x".$file." ".$disableglob; $ok=true; @@ -578,14 +579,16 @@ function dol_delete_file($file,$disableglob=0) { foreach (glob($file_osencoded) as $filename) { - $ok=unlink($filename); // The unlink encapsulated by dolibarr + if ($nophperrors) $ok=@unlink($filename); // The unlink encapsulated by dolibarr + else $ok=unlink($filename); // The unlink encapsulated by dolibarr if ($ok) dol_syslog("Removed file ".$filename,LOG_DEBUG); else dol_syslog("Failed to remove file ".$filename,LOG_WARNING); } } else { - $ok=unlink($file_osencoded); // The unlink encapsulated by dolibarr + if ($nophperrors) $ok=@unlink($file_osencoded); // The unlink encapsulated by dolibarr + else $ok=unlink($file_osencoded); // The unlink encapsulated by dolibarr if ($ok) dol_syslog("Removed file ".$file_osencoded,LOG_DEBUG); else dol_syslog("Failed to remove file ".$file_osencoded,LOG_WARNING); } @@ -596,21 +599,23 @@ function dol_delete_file($file,$disableglob=0) * Remove a directory (not recursive, so content must be empty). * If directory is not empty, return false * @param dir Directory to delete + * @param nophperrors Disable all PHP output errors * @return boolean True if success, false if error */ -function dol_delete_dir($dir) +function dol_delete_dir($dir,$nophperrors=0) { $dir_osencoded=dol_osencode($dir); - return rmdir($dir_osencoded); + return ($nophperrors?@rmdir($dir_osencoded):rmdir($dir_osencoded)); } /** * Remove a directory $dir and its subdirectories * @param dir Dir to delete * @param count Counter to count nb of deleted elements + * @param nophperrors Disable all PHP output errors * @return int Number of files and directory removed */ -function dol_delete_dir_recursive($dir,$count=0) +function dol_delete_dir_recursive($dir,$count=0,$nophperrors=0) { dol_syslog("functions.lib:dol_delete_dir_recursive ".$dir,LOG_DEBUG); $dir_osencoded=dol_osencode($dir); @@ -624,18 +629,18 @@ function dol_delete_dir_recursive($dir,$count=0) { if (is_dir(dol_osencode("$dir/$item"))) { - $count=dol_delete_dir_recursive("$dir/$item",$count); + $count=dol_delete_dir_recursive("$dir/$item",$count,$nophperrors); } else { - dol_delete_file("$dir/$item",1); + dol_delete_file("$dir/$item",1,$nophperrors); $count++; //echo " removing $dir/$item<br>\n"; } } } closedir($handle); - dol_delete_dir($dir); + dol_delete_dir($dir,$nophperrors); $count++; //echo "removing $dir<br>\n"; } -- GitLab