Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    eliminare file, sotto cartelle e cartelle principali

    Buon giorno, come da titolo ho questa necessità.
    Sto utilizzando un paio di funzioni che dovrebbero, prima eliminare il contenuto di una sotto cartella, e poi man mano, le sotto cartelle, fino a quella principale.
    La path è la seguente:
    1) path fissa: DOC/News/<- questa non si tocca
    2) "Dicembre_2013"
    3) sotto cartella nominata "436"<- id_news
    4) a seconda del file caricato potrò trovare altre sotto cartelle tipo: "img" oppure "pdf".
    5) dentro queste ultime due sotto cartelle avrò una immagine e tot pdf.

    Queste le due funzioni:
    Codice PHP:
    //compongo la path:
    $dirFile "DOC/News/Dicembre_2013/436/";

    function 
    ClearDirectory($dirFile){   
    if(
    $dir_handle opendir($dirFile)){           
    while(
    $file readdir($dir_handle)){               
    if(
    $file == "." || $file == ".."){               
    if(!
    unlink($dirFile."/".$file)){                   
    continue;               
    }                           
    }else{               
    unlink($dirFile."/".$file);           
    }       
    }       
    closedir($dir_handle);       
    return 
    true;// all files deleted    echo "all files deleted";   
    }else{       return false;// directory doesn?t exist    
    echo "directory doesn?t exist";   
    }    
    }

    function 
    RemoveDirectory($dirFile){   
    if(
    ClearDirectory($dirFile)){       
    if(
    rmdir($dirFile)){           
    return 
    true;// directory removed       
    }
    else{           
    return 
    false;// directory couldn?t removed       
    }   
    }else{       
    return 
    false;// no empty directory   
    }

    La cosa che non capisco è come mai:
    1) non mi elimina i file dentro le sotto cartelle img e pdf
    2) perché mi restituisce il seguente errore:
    unlink(DOC/News/Dicembre_2013/436/pdf)-> Is a directory in php on line 214

    Un aiutino per favore.
    Grazie mille
    Ultima modifica di ANTAGONIA; 19-12-2013 a 12:10

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Unlink elimina un file, rmdir() rimuove una directory (se vuota)

  3. #3
    si ho preso questa funzione su php.net
    Codice PHP:
    function recursiveRemove($dir) {    $structure glob(rtrim($dir"/").'/*');    if (is_array($structure)) {        foreach($structure as $file) {            if (is_dir($file)) recursiveRemove($file);            elseif (is_file($file)) unlink($file);        }    }    rmdir($dir);}
    recursiveRemove($dirFile); 
    sembra funzionare bene...
    grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.