Revise cada carpeta zip para obtener una lista de los nombres de los archivos y guárdelos en una sola tablaHola,
Necesito ayuda. Intenté escribir el jsl pero me quedé atascado. Espero que alguien pueda guiarme.
Tengo un directorio que contiene más de 10 000 carpetas comprimidas. Cada carpeta comprimida tiene más de 100 archivos.
Quiero realizar la siguiente tarea sin descomprimir SIN DESCOMPRIMIR las carpetas comprimidas.
1) Obtenga el nombre de cada carpeta comprimida.
2) entrar en la carpeta comprimida individual.
3) Obtenga los archivos en la carpeta comprimida.
4) En una tabla, agregue el nombre de la carpeta comprimida en la columna 1 y el nombre de sus archivos en la columna 2.
5) Repita los pasos 1)-4) para la siguiente carpeta comprimida hasta que todo esté listo.
gracias de antemano
Organización de contenidoIngeniería de Calidad y ProcesosRe: revise cada carpeta zip para obtener una lista de los nombres de los archivos y guárdelos en una sola tablaHola, pude obtener la lista de nombres de archivo. Quiero agregar el archivo de paso abierto que contiene una cadena específica de cada carpeta comprimida y luego concatenar todo en una tabla. Modifiqué el script como se muestra a continuación, pero no parece abrir esos archivos (hay más de 6000 en total). los más de 6000 archivos que contienen el nombre de archivo "trapo" son archivos de tipo ".log".
¿Hay alguna manera de que pueda seguir agregando el archivo en la misma tabla sin tener que abrir los más de 6000 archivos y luego solo concatenar?
ruta ="C:\Usuarios\Escritorio\prueba\";
carpetas = archivos en el directorio (ruta);
tablas={};
For( i = 1, i <= N Elementos( carpetas ), i++,
If( Palabra( -1, carpetas[i], "." ) == "zip",
theFolder = Open(ruta || carpetas[i], zip);
listadir = laCarpeta << dir;
For( k = 1, k <= N Elementos( dirList ), k++,
Si (contiene(dirlist[i], "trapo"),
rag_file = theFolder << read(dirList[i], format(blob));
Open(ruta || carpetas[i] ||"\" || rag_file);
Insertar en (tablas, tabla de datos (ruta || carpetas [i]));
);
);
);
);
dt = Nueva Tabla ("all_rag_files");
dt << concatenar (tablas, agregar a la primera tabla (1), crear columna de origen);
Re: revise cada carpeta zip para obtener una lista de los nombres de los archivos y guárdelos en una sola tablaEste código podría ayudarlo a comenzar:
NamesDefaultToHere(1);
myFolder = PickDirectory("Pick Folder", "$DESKTOP");
zipList = FilesInDirectory(myFolder);
col1Vals = {};
col2Vals = {};
for(z=1, z<=NItems(zipList), z++,
filePath = myFolder||"/"||zipList[z];
thisZIP = Open(filePath, zip);
filesInThisZIP = thisZIP << dir;
for(f=2, f<=NItems(filesInThisZIP), f++,
if(NItems(Words(filesInThisZIP[f], "/")) == 2,
InsertInto(col1Vals, zipList[z]);
InsertInto(col2vals, filesInThisZIP[f]);
);
);
Close(thisZIP, noSave);
);
NewTable("Folder of ZIP Files",
NewColumn("Folder Name", Character, Values(col1Vals)),
NewColumn("File Name", Character, Values(col2Vals))
);Re: revise cada carpeta zip para obtener una lista de los nombres de los archivos y guárdelos en una sola tablaAquí hay una secuencia de comandos simple que armé, usando entradas anteriores de la Comunidad que trataban con archivos zip.Mira si te funciona.
Names Default To Here( 1 );
directory = Pick Directory( "Select Directory that contains the Zip files" );
folders = Files In Directory( directory );
dt = New Table( "Zip Files",
New Column( "Folder Name", character ),
New Column( "File Name", character )
);
For( i = 1, i <= N Items( folders ), i++,
If( Word( -1, folders[i], "." ) == "zip",
theFolder = Open( directory || folders[i], zip );
dirList = theFolder << dir;
For( k = 1, k <= N Items( dirList ), k++,
dt << add rows( 1 );
numRows = N Rows( dt );
dt:Folder Name[numRows] = folders[i];
dt:File Name[numRows] = dirList[k];
);
)
);
Re: revise cada carpeta zip para obtener una lista de los nombres de los archivos y guárdelos en una sola tablaEcha un vistazo a la publicación de blog bastante nueva de Uncharted IMF de CSV seleccionados en un ZIP . Podría dar algunas ideas bastante buenas sobre cómo abordar esto.
Scripting Index parece tener también documentación en ZipArchive:
