Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2008, 11:16
syscover
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 22
Antigüedad: 16 años, 11 meses
Puntos: 1
Borrado via FTP sobre Windows

Buenos días!

Tengo un problemilla que me está llevando al suicidio...

Tengo una aplicación que necesita borrar una carpeta con sus subdirectorios y archivos via ftp mediante comandos php, he conseguido un código de la web de php.net que funciona de perlas sobre Linux pero sobre windows, nada de nada.

Aparentemente la función ftp_nlist, lo utilizo para comprobar si el directorio tiene carpetas o archivos pero no lista los subdirectorios pero si los archivos.

La conexión ftp es activa, aunque creo que no tendría que afectar esto...

adjunto el código a ver si hay alguien que se le ocurra algo...

Cita:
function DeleteDirRecursive($resource, $path) {
$result_message = "";
$list = ftp_nlist($resource, $path);
if(empty($list)){
$list = RawlistToNlist( ftp_rawlist($resource, $path), $path . ( substr($path, strlen($path) - 1, 1) == "/" ? "" : "/" ) );
}
if($list[0]!=$path){
$path.=(substr($path,strlen($path)-1,1)=="/"?"":"/");

foreach($list as $item) {
if ($item != $path.".." && $item != $path.".") {
$result_message .= DeleteDirRecursive($resource, $item);
}
}

if (ftp_rmdir ($resource, $path)) {
$result_message .= "Successfully deleted $path <br />\n";
} else {
$result_message .= "There was a problem while deleting $path <br />\n";
}
}
else {
if (ftp_delete ($resource, $path)) {
$result_message .= "Successfully deleted $path <br />\n";
} else {
$result_message .= "There was a problem while deleting $path <br />\n";
}
}
return $result_message;
}


function RawlistToNlist($rawlist, $path) {
$array = array();
foreach ($rawlist as $item) {
$filename = trim(substr($item, 55, strlen($item) - 55));
if ($filename != "." || $filename != "..") {
$array[] = $path . $filename;
}
}
return $array;
}
¿Me podeis ayudar?
Gracias de antemano!!

Última edición por syscover; 11/04/2008 a las 01:56