|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Eliminazione di File e Directory
Ho un piccolo script per eliminare i file contenuti in una Directory,
Codice:
<?
$directory = "./";
$dir = opendir($directory);
while(false !== ($file = readdir($dir)))
{
if(file_exists("$directory/$file") && $file != "." && $file != "..")
{
unlink($file);
echo"$file = <b>Eliminato!!!</b><br>";
}
}
closedir($dir);
?>
settato cosi' mi elimina tutti i file del solito livello di dove si trova lo stasso script e in piu' si autoelimina, fin qui' tutto OK! In piu' vorrei che se esistono delle directory insieme ai file le eliminasse di netto anche se contengono dei file. come devo intervenire nel codice ??? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Ricorsione?
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Che vuoi dire ???
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Si ha ricorsione quando una funzione richiama se stessa...
In questo caso se nella directory che stai processando trovi un'altra directory richiami la funzione sulla directory che hai trovato.... Codice:
<?php
function eliminaDirectory($directory)
{
if(!is_dir($directory))
return -1
$dir = opendir($directory);
while (false !== ($entry = readdir($dir)))
{
$file = "$directory/$entry";
if(is_dir($file))
eliminaDirectory($file); //questa è la ricorsione
if(unlink($file))
echo"$file <b>eliminato!!!</b><br>";
else
echo"$file <b>non eliminato!!!</b><br>";
}
closedir($dir);
return 0;
}
//Lo puoi richiamare così
eliminaDirectory("./");
?>
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
mi da un errore di Apache .......
e mi dice pagina non trovata... |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Che errore ti da ?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
unlink non può cancellare anche le directory...
Codice:
<?php
function eliminaDirectory($directory)
{
if(substr($directory, -1) != "/")
$directory .= "/";
if(!is_dir($directory))
return -1;
$dir = opendir($directory);
while (false !== ($entry = readdir($dir)))
{
if($entry != ".." && $entry != ".")
{
$file = "$directory$entry";
if(is_dir($file))
{
eliminaDirectory($file); //questa è la ricorsione
rmdir($file);
}
else if(unlink($file))
echo "$file <b>eliminato!!!</b><br>";
else
echo "$file <b>non eliminato!!!</b><br>";
}
}
closedir($dir);
return 0;
}
//Lo puoi richiamare così
eliminaDirectory("./pippo");
?>
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:59.



















