Navega por la carpeta comprimida para importar imágenesHola a todos,
Actualmente estoy luchando con el intento de incluir gráficos (tiff) desde un archivo zip. Encontré varias otras discusiones sobre este tema que parecían muy prometedoras, pero no pude encontrar una sintaxis funcional para mi caso particular.
El problema principal con el que estoy lidiando en este momento es que todas las discusiones parecen tener solo una "capa" dentro del archivo zip (por ejemplo, archivo zip con varios documentos de texto directamente dentro). En mi caso, los gráficos que estoy buscando se comprimen automáticamente como una carpeta. Al abrir el archivo zip, tendría que navegar a dicha carpeta para recuperar realmente la lista de archivos dentro (como [...] \ filename.zip \ foldername \ graphics.tif). Intenté principalmente acceder a él a través de diferentes variaciones de esta discusión tanto como esta publicación aquí . Pero cada vez que intento generar una lista de archivos dentro del archivo zip a través de "<< dir", solo devuelve una lista en blanco.
Intenté hasta ahora incorporar la subcarpeta dentro de la declaración abierta
za = open ("[...]\filename.zip\FolderName\", zip);
Show ( za << dir );usando la referencia del archivo zip abierto para navegar más abajo (no recuerdo la sintaxis real que probé, ya la eliminé) o leyendo distintos archivos gráficos por nombre de archivo de ambas versiones
za = open ("[...]\filename.zip\FolderName\", zip);
dat = za << Read( "graphics.tif", Format( blob ) ); or dat = za << Read( "folderName\graphics.tif", Format( blob ) );¿Existe una sintaxis para navegar por la estructura de una carpeta dentro de un archivo zip? O, alternativamente, ¿existe la posibilidad de incorporar alguna declaración "recursiva" al abrir el archivo zip para obtener todos los archivos que están anidados en algún lugar más abajo?
Espero cualquier aporte que pueda compartir.
Atentamente
Malte
Re: Navega por la carpeta comprimida para importar imágenesEsto es confuso porque muchas utilidades presentan el contenido de un archivo zip como si hubiera un directorio jerárquico en el archivo zip. Realmente es un directorio plano, y el directorio zip no requiere que los nombres de los miembros utilicen barras inclinadas hacia adelante o hacia atrás de ninguna manera en particular. Construí test.zip usando Windows integrado en zip.
za=open("$desktop/test.zip","zip");
za<
Windows incorporado en el navegador lo ve así
Explorador de Windows navegando a través de un archivo zip
Parece que necesitará barras diagonales en lugar de barras diagonales inversas en los nombres de los miembros.
Re: Navega por la carpeta comprimida para importar imágenesHola @Craige_Hales
Gracias por su respuesta rápida. Obtuve la sintaxis para trabajar usando su entrada. Desafortunadamente, no pude hacer que funcione para mi objeto original de deseo ...
Como resultado, puedo abrir y leer algunos archivos zip usando exactamente la sintaxis que proporcionó (independientemente de si se está utilizando una barra oblicua o una barra invertida), mientras que otros todavía devuelven solo listas en blanco.
La principal diferencia entre los archivos que puedo abrir y los que no puedo abrir parece ser el tamaño real del archivo zip. Después de jugar un poco tratando de abrir varios archivos, parece que hay un límite oculto cuando el tamaño del archivo zip supera aproximadamente los 2 GB (tendré que consultar con nuestro departamento de informática para ver si hay otras diferencias en los archivos a los que no puedo acceder / determinar).
Ya intenté implementar tiempos de espera de 20 segundos entre abrir y leer el directorio, así como entre leer el directorio y mostrarlo en el registro, para asegurarme de que no esté relacionado con el cálculo de tiempos / jmp ups. Hasta ahora en vano.
¿Conoce alguna limitación de tamaño al abrir archivos zip a través de jmp o tiene alguna otra sugerencia sobre qué probar?
Atentamente
Malte
Re: Navega por la carpeta comprimida para importar imágenes2 GB es el límite tanto del tamaño de una cadena en JMP como del tamaño de un miembro zip en el soporte de archivo zip de JMP.
(2 GB es 2 ^ 31; ese es el número más grande que cabe en un entero con signo de 32 bits).
Los blobs JMP no están limitados a 2GB. Creo que una versión futura de JMP también puede permitir miembros zip mayores de 2 GB, que luego podrían leerse en un blob. @Paul_Nelson
Es posible que pueda crear un script para un programa zip externo utilizando el programa de ejecución de JMP. El programa externo podría admitir> 2 GB si es bastante reciente.