PHP FAQ

Jak usunąć plik lub folder

piechnat

Usuwanie pliku

unlink('jakis_plik.txt');

Usuwanie folderu

rmdir('jakis_folder');

Folder przed usunięciem musi być pusty.

Aby usunąć folder, który nie jest pusty trzeba go najpierw oczyścić.

$nazwa_folderu = "jakis_folder"; //podajemy nazwę folderu do oczyszczenia i usunięcia
$dir = opendir($nazwa_folderu);
  while($a = readdir($dir)) { //pobieramy w pętli nazwy plików z folderu
    if($a!='.' or $a!='..') { //jeżeli nazwą pliku nie jest . lub ..
      unlink($nazwa_folderu."\\".$a); //usuwamy go
    }
  }
closedir($dir);
rmdir($nazwa_folderu); //usuwamy pusty folder
FAQ

7 komentarzy

wiedziałem że funkcja mkdir() tworzy folder i można stworzyć plik ale że usunąć się da to nie wiedziałem

Myslalem o tym, ale masz w tym artykule tylko sposob usuniecia folderu z plikami. Jak ktos chce, to sobie skonstruuje funkcje :)

Nie lepiej wsadzic usuwanie folderu do funkcji????

function delete_dir( $f ){
 
    if( is_dir( $f ) ){
        foreach( scandir( $f ) as $item ){
            if( !strcmp( $item, '.' ) || !strcmp( $item, '..' ) )
                continue;       
            delete_dir( $f . "/" . $item );
        }   
        rmdir( $f );
    }
    else{
        unlink( $f );
    }
}
 delete_dir('floder');

Usuwa wszysko co jest w folderze :p

Nie pomyslalem o innych folderach. Ale jak sa same pliki to dziala :)

no nie wiem.. a co jesli w folderze sa inne foldery? ja bym to zrobil rekursywnie, no i nie
$nazwa_folderu = "jakis_folder";
tylko
$nazwa_folderu = 'jakis_folder';
po co niepotrzebnie parsowac stringa?

rozwiazanie z docs.php.net:

function full_rmdir($dirname){
if ($dirHandle = opendir($dirname)){
$old_cwd = getcwd();
chdir($dirname);

        while ($file = readdir($dirHandle)){
            if ($file == '.' || $file == '..') continue;

            if (is_dir($file)){
                if (!full_rmdir($file)) return false;
            }else{
                if (!unlink($file)) return false;
            }
        }

        closedir($dirHandle);
        chdir($old_cwd);
        if (!rmdir($dirname)) return false;

        return true;
    }else{
        return false;
    }
}

a ja wcale nie,
powiedzcie ktoś kto sie zna jak usunąć folder który nie jest pusty ??

BRAWO...
UWIELBIAM TAKIE ARTYKUŁY.
KRÓTKO I ZWIĘŹLE BRAWOOOOOOOOOOO