Sab Ago 20, 2005 12:44 pm
|
 |
rorris
Perlero Nuevo

|
Registrado: 14 Jun 2005
Mensajes: 21
|
|
| Alguna funcion para borrar directorios no vacios? |
|
|
Necesito borrar un directorio que no este vacio con perl, pero la funcion 'rmdir' solo funciona con directorios vacios. Tambien he probado 'unlink' y nada. Existe de verdad alguna funcion para hacer esto o tendria que hacer un script que mirara en un directorio y fuera borrando uno a uno los ficheros y subdirectorios de este?
Gracias de antemano. |
|
|
|

Sab Ago 20, 2005 4:45 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Hola:
Por ejemplo si estuvieras en un SO tipo windows, podrías hacer algo así:
| Código: |
| system('deltree DIR'); |
Aquí lo que estarías haciendo es ejecutar un comando externo a perl usando la función system().
Ahora si quieres hacer todo usando funciones internas de perl, entonces si tienes que eliminar todo el contenido de tu directorio antes de poder eliminarlo. Para ello te recomiendo que uses el módulo File::Find, aquí en el sitio hay un tutorial:
http://perlenespanol.baboonsoftware.com/archives-tut/000135.html
Con este módulo vas a poder ir a través de todos los archivos de tu directorio e irlos eliminando de manera muy sencilla.
SALUDOS |
|

Dom Ago 21, 2005 10:28 am
|
 |
Joaquin
Perlero Nuevo

|
Registrado: 13 Ago 2005
Mensajes: 12
Ubicación: Valladolid, España
|
|
| Borrar directorios de forma recursiva |
|
|
| Código: |
use Sysadm::Install 'rmf';
rmf( $dir );
|
Sysadm::Install;
| Código: |
use File::Path;
rmtree( $dir, 1, 1);
|
File::Path; |
|
Lun Ago 22, 2005 1:05 pm
|
 |
rorris
Perlero Nuevo

|
Registrado: 14 Jun 2005
Mensajes: 21
|
|
|
|
|
Gracias Joaquin y, por supuesto, gracias kidd. Al final he utilizado tu segunda opcion, Joaquin. Me parecio la mas sencilla.
Mil gracias. Linux power!!! |
|
Dom Sep 04, 2005 12:10 pm
|
 |
explorer39
Perlero Frecuente

|
Registrado: 23 Ago 2005
Mensajes: 126
Ubicación: Valladolid, España
|
|
|
|
|
| rorris escribió: | | Me parecio la mas sencilla. |
Es la más sencilla porque File::Path viene incluído en la distribución base de Perl, asi que siempre está presente, mientras que Sysadm::Install debes instalarle.
Yo utilizo la primera, por la sencilla idea de que sólo es un parámetro, el directorio que quiero borrar.
Al final, da igual. rmf llama a rmtree  |
|
Powered by phpBB © 2001, 2005 phpBB Group
|