Programowanie w języku PHP » FAQ

Jak usunąć plik lub folder

  • 2008-01-04 22:09
  • 7 komentarzy
  • 4887 odsłon
  • Oceń ten tekst jako pierwszy

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

7 komentarzy

pisak 2009-08-31 17:54

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

MikiKam 2008-01-08 20:08

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

bordeux 2008-01-06 14:57

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

MikiKam 2008-01-05 12:18

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

the4dK 2008-01-04 23:13

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;
        }
    }

x-fly 2007-12-04 02:56

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

jakubkrol 2005-05-28 12:18

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