passare attraverso ogni cartella zip per ottenere l'elenco dei nomi dei file da essa e salvare in una singola tabellaCiao,
Ho bisogno di aiuto qui. Ho provato a scrivere il jsl ma mi sono bloccato e spero che qualcuno possa guidarmi qui.
Ho una directory che contiene più di 10.000 cartelle zippate. Ogni cartella compressa ha più di 100 file.
Voglio eseguire l'attività di seguito senza decomprimere SENZA UNZIP le cartelle compresse.
1) ottenere il nome di ogni cartella zippata.
2) entrare nella cartella zippata individuale.
3) ottenere i file nella cartella zippata.
4) in una tabella, aggiungi il nome della cartella compressa nella colonna 1 e il nome del suo file nella colonna 2.
5) ripeti il passaggio 1)-4) per la cartella compressa successiva fino al termine.
Grazie in anticipo
Tabella datiScriptingRe: passare attraverso ogni cartella zip per ottenere l'elenco dei nomi dei file da essa e salvare in una singola tabellaDai un'occhiata al post sul blog di Uncharted abbastanza nuovo MFI da CSV selezionati in un ZIP . Potrebbe dare alcune buone idee su come avvicinarsi a questo.
Scripting Index sembra avere anche la documentazione su ZipArchive:

Re: passare attraverso ogni cartella zip per ottenere l'elenco dei nomi dei file da essa e salvare in una singola tabellaEcco un semplice script che ho messo insieme, usando le precedenti voci della Community che si occupavano di file zip.Guarda se va bene per te.
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: passare attraverso ogni cartella zip per ottenere l'elenco dei nomi dei file da essa e salvare in una singola tabellaQuesto codice potrebbe aiutarti a iniziare:
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: passare attraverso ogni cartella zip per ottenere l'elenco dei nomi dei file da essa e salvare in una singola tabellaSalve, sono in grado di ottenere l'elenco dei nomi dei file. Voglio aggiungere il file di apertura del passaggio che contiene una stringa specifica da ciascuna cartella compressa e successivamente concatenare tutto in un'unica tabella. Ho modificato lo script come di seguito, ma non sembra aprire quei file (ce ne sono in totale 6000+). gli oltre 6000 file il cui nome contiene "rag" sono di tipo ".log".
c'è un modo per continuare ad aggiungere il file nella stessa tabella senza dover aprire tutti i 6000 file e poi solo concatenarli?
percorso ="C:\Utenti\Desktop\test\";
cartelle = File nella directory (percorso);
tabelle={};
For( i = 1, i <= N elementi ( cartelle ), i++,
If( Word( -1, folders[i], "." ) == "zip",
theFolder = Open( percorso || cartelle[i], zip );
dirList = theFolder << dir;
For( k = 1, k <= N elementi ( dirList ), k++,
If (contiene(dirlist[i], "rag"),
rag_file = theFolder << read(dirList[i], format(blob));
Open(percorso || cartelle[i] ||"\" || rag_file);
Inserisci in (tabelle, tabella dati (percorso || cartelle[i]));
);
);
);
);
dt = Nuova tabella ("all_rag_files");
dt << concatenate(tables, append to first table( 1 ), crea colonna sorgente);