diff options
Diffstat (limited to 'lib/private/files/storage/local.php')
-rw-r--r-- | lib/private/files/storage/local.php | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/private/files/storage/local.php b/lib/private/files/storage/local.php index ff2949d33b6..16689ee905c 100644 --- a/lib/private/files/storage/local.php +++ b/lib/private/files/storage/local.php @@ -44,17 +44,20 @@ if (\OC_Util::runningOnWindows()) { new \RecursiveDirectoryIterator($this->datadir . $path), \RecursiveIteratorIterator::CHILD_FIRST ); - foreach ($it as $file) { + while ($it->valid()) { /** * @var \SplFileInfo $file */ + $file = $it->current(); if (in_array($file->getBasename(), array('.', '..'))) { + $it->next(); continue; } elseif ($file->isDir()) { rmdir($file->getPathname()); } elseif ($file->isFile() || $file->isLink()) { unlink($file->getPathname()); } + $it->next(); } return rmdir($this->datadir . $path); } catch (\UnexpectedValueException $e) { |