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

    Funzione elimina dir( cartella) non và..

    Buon giorno, ho preso da php.net una funzione che dovrebbe eliminare la cartella, però non capisco come mai, non debba funzionare...
    Altra domanda, se in una cartella ho altre sottocartelle, con al loro interno altri file, è possibile con la funzione che sto per postare, eliminare in un colpo solo tutta la cartella padre ed il suo contenuto?

    codice:
    $dir = "../public/strumenti/";
    
    //valore che indica la cartella
    $DirStr = trim($_GET['DirStr']);
    
    $f = $dir.$DirStr;
    
    
    function deltree( $f ){
    
        if( is_dir( $f ) ){
            foreach( scandir( $f ) as $item ){
                if( !strcmp( $item, '.' ) || !strcmp( $item, '..' ) ) 
                    continue;        
                deltree( $f . "/" . $item );
            }    
            rmdir( $f );
            echo "<script language=\"javascript1.2\">
    		alert(\"CARTELLA ELIMINATA CON SUCCESSO!\");
    		location.href=\"?Up_s_m=1&c_sf=$c_sf\";
    	    </script>";
        }
        else{
            unlink( $f );
        }
    }
    Se potete cortesemente....grazie mille

  2. #2
    nessuno sà come fare?

  3. #3
    ragazzi, ma sta cartella e le sue sottocartelle non vogliono saperne di essere eliminate...
    COme mai?

    Potete dirmi per favore, dato che è importante, il perchè non mi funziona?

    Grazie mille...

  4. #4
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Controlla i permessi delle cartelle. Devono essere 777!

  5. #5
    ho prvato a cancellare, solo una cartella..e la cancella, nn capisco com mai le sottocartelle e i loro contenuti no....

    aiutoooooooooooooooooooooo

  6. #6
    hai controllato di aver cancellato tutti i file all'interno della cartella? altrimento rmdir non funziona
    w la topa

  7. #7
    b giorno, purtroppo mi cancella la cartella solo se vuota, ma se all'interno trova altro, tipo, file.txt e cartelle che contengono a loro volta altri file...non me la cancella...!!!!

    aiutatemiiiiiiiiii.........
    vi dico la path com'è composta, magari è qui l'inghippo:

    * questo è il form che, tramite un ciclo, và a comporre una select option, con tutte le subcartelle che ho all'interno della cartella principale cioè gallery_artists:

    * l'action del form "?rimuoviDirFoto=1" fà riferimento a questa pagina, upload/Up_foto/rimuoviDir.php, dove c'è la funzione per l' eliminazione...
    codice:
    $dirname = "../public/gallery_artists/";
    
    <form method=\"post\" action=\"?rimuoviDirFoto=1\" name=\"frm\" enctype=\"multipart/form-data\">
    								
    
    
    								Cartella Strumento:";//upload/Up_foto/rimuoviDir.php
    								
    								//echo "Dir: " . $dirname;
    									if(is_dir($dirname)){
    										$arrF = array("_",".txt");
    										if ($dir = opendir($dirname)) {
    											//inzializzo a 0 il conteggio dei file.txt dei testi
    											echo "<select name=\"CartellaArtista\" class=\"INPUT\">";
    												echo "<option value=\"\"></option>";
    											while (false !== ($dfile = readdir($dir))) { 
    												if ($dfile != "." && $dfile != ".." && $dfile != "Thumbs.db") {
    													$df = str_replace($arrF, " ", $dfile);
    													echo "<option value=\"$df\">$df</option>";
    												}//close if
    											}//close while
    											echo "</select> ";
    											closedir($dir);
    										}//close if
    									}//close if
    									else{ 
    										echo ""; 
    									}//close e
    								
    								//<input type=\"button\" name=\"Cancella Cartella\" value=\"Cancella Cartella\" style=\"width:120px\" class=\"INPUT\" onclick=\"subCancellaCartella()\"/>
    					echo "	
    								<input type=\"submit\" name=\"Cancella Cartella\" value=\"Cancella Cartella\" style=\"width:120px\" class=\"INPUT\"/>
    								</form>
    questa è la pagina che contiene la funzione:
    codice:
    $dir = "../public/gallery_artists/";
    	 
    	//valore che indica la cartella
    	$CartellaArtista = str_replace(" ","_",trim($_POST['CartellaArtista']));
    	
    	$f = $dir.$CartellaArtista;
    	echo "F: " . $f;
    	
    	
    	//function deltree( $f ){
    	
    		if( is_dir( $f ) ){
    		
    			foreach( scandir( $f ) as $item ){
    				
    				if( !strcmp( $item, '.' ) || !strcmp( $item, '..' ) ) 
    					
    					continue;        
    				deltree( $f . "/" . $item );
    				
    			}    
    			rmdir( $f );
    			
    		}
    		else{
    			unlink( $f );
    			
    		}
    		
    	//}
    	
    	if(!$f){
    		echo "	<script language=\"javascript1.2\">
    					alert(\"IMPOSSIBILE ELIMINARE LA CARTELLA!\");
    					location.href=\"?Up_foto=1&c_sf=$c_sf\";
    				</script>";
    	}
    	else{
    		echo "	<script language=\"javascript1.2\">
    					alert(\"CARTELLA ELIMINATA CON SUCCESSO!\");
    					location.href=\"?Up_foto=1&c_sf=$c_sf\";
    				</script>";	
    	}
    questo è quanto...spero possa esservi utile per capire e farmi capire....
    Vi ringrazio davvero tanto..buon week

  8. #8
    è proprio la funzione rmdir che funziona così: cancella le cartelle solo se vuote. quindi devi fare un ciclo ricorsivo per leggere tutti i file dentro le cartelle, cancellarli singolarmente e solo dopo cancellare le cartelle
    w la topa

  9. #9
    ciao, ma quello che mi chiedi non dovrebbe farlo qui?
    codice:
    foreach( scandir( $f ) as $item ){
    	if( !strcmp( $item, '.' ) || !strcmp( $item, '..' ) ) 
    		continue;        
    		deltree( $f . "/" . $item );
    	}    
    	rmdir( $f );
    e poi, ho notato che la funzione scandir, non mi funziona, nel senso.
    Utilizzo dreamweaver, se digito opendir, oppure readdir, le scrive in blu, altrimenti nera se non la riconosce...

    E scandir la scrive nera, quindi...il problema credo che sia anche qui...o è una cavolata quello che dico?

    Cmq, se devo fare un'altro ciclo, per estrapolare il contenuto delle subcartelle, lo devo fare prima del continue?

    Grazie mille...

  10. #10
    non riesco proprio ad eliminarla...sapete come fare per favore?Per favore?
    aiutoooooooo
    grazie mille....

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.