diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php
index 7ea3bea9052..0dc5a2c4456 100644
--- a/htdocs/core/lib/files.lib.php
+++ b/htdocs/core/lib/files.lib.php
@@ -802,14 +802,15 @@ function dol_delete_dir($dir,$nophperrors=0)
}
/**
- * Remove a directory $dir and its subdirectories
+ * Remove a directory $dir and its subdirectories (or only files and subdirectories)
*
* @param string $dir Dir to delete
* @param int $count Counter to count nb of deleted elements
* @param int $nophperrors Disable all PHP output errors
+ * @param int $onlysub Delete only files and subdir, not main directory
* @return int Number of files and directory removed
*/
-function dol_delete_dir_recursive($dir,$count=0,$nophperrors=0)
+function dol_delete_dir_recursive($dir,$count=0,$nophperrors=0,$onlysub=0)
{
dol_syslog("functions.lib:dol_delete_dir_recursive ".$dir,LOG_DEBUG);
if (dol_is_dir($dir))
@@ -836,9 +837,13 @@ function dol_delete_dir_recursive($dir,$count=0,$nophperrors=0)
}
}
closedir($handle);
- dol_delete_dir($dir,$nophperrors);
- $count++;
- //echo "removing $dir
\n";
+
+ if (empty($onlysub))
+ {
+ dol_delete_dir($dir,$nophperrors);
+ $count++;
+ //echo "removing $dir
\n";
+ }
}
}