¡Ah! y borra los zip originales, perdona, no me daba cuenta. Si quieres que no haga eso comenta: unlink($archivoZip->getPathname());
Un saludo El 13 de julio de 2011 17:56, Luis Franco Vázquez <[email protected]>escribió: > Hola Jorge: > > yo estaba haciendo lo mismo con PHP. > Prueba este script y me cuentas (ejecútalo si quieres desde consola con php > nombre_script.php). > Cambia la ruta del directorio y ya se encarga él de buscar todos los zip y > de extraerlos en el mismo sitio. > > Ya me dirás. > Un saludo > <?php > > /** > * Librería que extiende el FilterIterator del SPL de PHP > * para filtrar sólo los archivos de un tipo > * > */ > class FiltroDirectorio extends FilterIterator > { > private $_tipo; > > /** > * Constructor > * > * @access public > * @return void > */ > public function __construct($path,$tipo) > { > parent::__construct(new DirectoryIterator($path)); > $this->_tipo = '.' . strtolower($tipo); > } > > /** > * Comprueba si durante una iteración se cumplen las condiciones > * > * @access public > * @return Boolean $aceptable > */ > public function accept() > { > $aceptable = FALSE; > $iteradorDirectorio = $this->getInnerIterator(); > $aceptable = $iteradorDirectorio->isFile(); > if ($aceptable) > { > $aceptable = (bool) > substr_count(strtolower($iteradorDirectorio->getFilename()), $this->_tipo); > } > return $aceptable; > } > > } > > $rutaDirZip = > '/home/usuario/Escritorio/catastro/muestras/urbana_sin_historia/'; > $dir = new FiltroDirectorio($rutaDirZip,'zip'); > foreach ($dir as $archivoZip) > { > $zip = new ZipArchive; > if ($zip->open($archivoZip->getPathname()) === TRUE) { > $zip->extractTo($rutaDirZip); > $zip->close(); > echo 'Extrayendo '.$archivoZip->getPathname().PHP_EOL; > echo 'Borrando '.$archivoZip->getPathname().PHP_EOL; > unlink($archivoZip->getPathname()); > > } else { > echo 'Fallo extracción: '.$archivoZip->getPathname().PHP_EOL; > } > } > ?> > El 13 de julio de 2011 17:31, Jorge Arévalo < > [email protected]> escribió: > > Lo olvidaba. Es Python 2.7. Pasa igual con 2.6 >> >> 2011/7/13 Jorge Arévalo <[email protected]>: >> > Buenas, >> > >> > Estoy procesando datos catastrales con Python, y me estoy encontrando >> > con un problema bastante molesto. Os cuento lo que hago: >> > >> > 1.- Con certificado digital, me bajo unos shapefiles de prueba del >> > servicio de descarga masiva de datos catastrales >> > (https://www.sedecatastro.gob.es/OVCFrames.aspx?TIPO=TIT&a=masiv). >> > Elijo la opción "rústica con historia". Me baja un fichero zip >> > >> > 2.- Con Python, descomprimo ese fichero zip. Dentro tiene más ficheros >> > zip (PARCELA.zip, SUBPARCE.zip, etc). >> > >> > 3.- Intento descomprimir cada uno de los ficheros por separado, y con >> > todos ellos Python me da una excepción "BadZipFile: File is not a zip >> > file". Llamando al método "is_zipfile" >> > (http://docs.python.org/library/zipfile.html), efectivamente, me >> > devuelve FALSE. He estado buscando por Internet gente que ha tenido un >> > problema similar, pero no he encontrado ninguna respuesta >> > satisfactoria todavía. En StackOverflow hay un par de hilos sin >> > respuesta sobre el tema. Por lo que he podido sacar, será que los >> > ficheros no están en el formato PKZIP. 7-zip me los abre sin >> > problemas, y el unzip de Ubuntu lo mismo. >> > >> > Hasta donde yo creía saber, el algoritmo PKZIP era el implementado >> > para la compresión ZIP, y pensé que cualquier librería que soportara >> > archivos zip no tendría problemas con dicho formato, pero se ve que >> > no. >> > >> > ¿Alguien tiene experiencia con los ficheros del catastro?, ¿o con este >> > tipo de problema en ficheros zip? >> > >> > Gracias por anticipado, y saludos, >> > >> > -- >> > Jorge Arévalo >> > Internet & Mobility Division, DEIMOS >> > [email protected] >> > http://es.linkedin.com/in/jorgearevalo80 >> > http://mobility.grupodeimos.com/ >> > http://gis4free.wordpress.com >> > http://geohash.org/ezjqgrgzz0g >> > >> >> >> >> -- >> Jorge Arévalo >> Internet & Mobility Division, DEIMOS >> [email protected] >> http://es.linkedin.com/in/jorgearevalo80 >> http://mobility.grupodeimos.com/ >> http://gis4free.wordpress.com >> http://geohash.org/ezjqgrgzz0g >> _______________________________________________ >> Spanish mailing list >> http://lists.osgeo.org/mailman/listinfo/spanish >> http://es.osgeo.org >> http://twitter.com/osgeoes >> > >
_______________________________________________ Spanish mailing list http://lists.osgeo.org/mailman/listinfo/spanish http://es.osgeo.org http://twitter.com/osgeoes
