PHP: recursive silmek

0 Cevap php

Ben dosyaları ve dizinleri silmek özyinelemeli bu kodu var. Bu çalışıyor ama küçük bir sorun var. $ Path = / var / www / foo / o foo içindeki herşeyi silmek, ancak foo vermezler. Ben de foo dizini silmek istiyoruz. Herhangi ideia? Teşekkür ederim.

public function delete($path) {
    if(!file_exists($path)) {
        throw new RecursiveDirectoryException('Directory doesn\'t exist.');
    }

    $directoryIterator = new DirectoryIterator($path);

    foreach($directoryIterator as $fileInfo) {
        $filePath = $fileInfo->getPathname();

        if(!$fileInfo->isDot()) {
            if($fileInfo->isFile()) {
                unlink($filePath);
            }
            else if($fileInfo->isDir()) {
                if($this->emptyDirectory($filePath)) {
                    rmdir($filePath);
                }
                else {
                    $this->delete($filePath);
                    rmdir($filePath);
                }
            }
        }
    }
}

0 Cevap