MDL-36963 Improve mdeploy worker::remove_directory() method

The additional parameter allows to use this method without actual
removing the root of the path. That is, it is now possible to remove
the content of a folder only.
This commit is contained in:
David Mudrák
2012-12-06 02:35:22 +01:00
parent 606e2c8ebe
commit e399d32694
+16 -5
View File
@@ -1207,11 +1207,15 @@ class worker extends singleton_pattern {
* Deletes the given directory recursively
*
* @param string $path full path to the directory
* @param bool $keeppathroot should the root of the $path be kept (i.e. remove the content only) or removed too
* @return bool
*/
protected function remove_directory($path) {
protected function remove_directory($path, $keeppathroot = false) {
$result = true;
if (!file_exists($path)) {
return;
return $result;
}
if (is_dir($path)) {
@@ -1228,15 +1232,22 @@ class worker extends singleton_pattern {
}
if (is_dir($filepath)) {
$this->remove_directory($filepath);
$result = $result && $this->remove_directory($filepath, false);
} else {
unlink($filepath);
$result = $result && unlink($filepath);
}
}
closedir($handle);
return rmdir($path);
if (!$keeppathroot) {
$result = $result && rmdir($path);
}
clearstatcache();
return $result;
}
/**