diff --git a/application/Espo/Core/Utils/File/Manager.php b/application/Espo/Core/Utils/File/Manager.php index 7a6fa9b50c..45f0fbdf6c 100644 --- a/application/Espo/Core/Utils/File/Manager.php +++ b/application/Espo/Core/Utils/File/Manager.php @@ -625,12 +625,19 @@ class Manager $items = (array) $items; } + $removeList = array(); $permissionDeniedList = array(); foreach ($items as $item) { if (isset($dirPath)) { $item = Utils\Util::concatPath($dirPath, $item); } + if (!file_exists($item)) { + continue; + } + + $removeList[] = $item; + if (!is_writable($item)) { $permissionDeniedList[] = $item; } else if (!is_writable(dirname($item))) { @@ -644,11 +651,7 @@ class Manager } $result = true; - foreach ($items as $item) { - if (isset($dirPath)) { - $item = Utils\Util::concatPath($dirPath, $item); - } - + foreach ($removeList as $item) { if (is_dir($item)) { $result &= $this->removeInDir($item, true); } else {