Ho trovato sul manuale on line di PHP (http://it2.php.net/manual/it/function.ftp-rmdir.php ) la cancellazione ricorsiva di una directory piena da un server FTP.
Fin qui tutto benema...
...includendo la finzione in una classe non riesco a capire come fare la chimata ricorsiva della funzione stessa.![]()
Questo il codice ( e quando usatelo pensatemi ...) :
codice:// CANCELLAZIONE DI UN FILE O DI UNA DIRCTORY (SE PIENA CANCELLA IN MODO RICORSIVO TUTTO IL CONTENUTO) function CancellaFileDir($PathNomeFileDir) { $this->Errore = 0; echo " Delete di " . $PathNomeFileDir; // Se NON si riesce ad effettuare la cancellazione del FileDir richiesto... (Directory piena) if (!(@ftp_rmdir($this->ConnessioneFTP, $PathNomeFileDir) || @ftp_delete($this->ConnessioneFTP, $PathNomeFileDir))) { // ... determina l'elenco dei files contenuti nella directory richiesta... $ElencoFiles = @ftp_nlist($this->ConnessioneFTP, $PathNomeFileDir); // ... se l'elenco dei files contenuti non è vuoto... if (!empty($ElencoFiles)) { // ... per ogni file in elenco... foreach($ElencoFiles as $FileInElenco) { // ... effettua la cancellazione in maniera ricorsiva - QUI DA ERRORE !!!! CancellaFileDir($FileInElenco); } } // Effettua la cancellazione del path principale richiesto if (!@ftp_rmdir($this->ConnessioneFTP, $PathNomeFileDir)) { $this->Errore = 601; $this->DescErrore = "Cancellazione via FTP di " . $PathNomeFileDir . " non effettuata per errore."; } else { $this->DescErrore = "Cancellazione via FTP di " . $PathNomeFileDir . " effettuata correttamente."; } } if ($this->Errore != 0) { $Esito = FALSE; } else { $Esito = TRUE; } return $Esito; }

ma...
) :
Rispondi quotando