Navigieren Sie im gezippten Ordner für den BildimportHallo allerseits,
Ich kämpfe derzeit mit dem Versuch, Grafiken (tiff) aus einem Zip-Archiv einzubinden. Ich habe mehrere andere Diskussionen zu diesem Thema gefunden, die sehr vielversprechend erschienen, aber ich konnte keine funktionierende Syntax für meinen speziellen Fall finden.
Das Hauptproblem, mit dem ich mich gerade befasse, ist, dass alle Diskussionen nur eine "Ebene" innerhalb der Zip-Datei zu haben scheinen (zB Zip-Datei mit mehreren Textdokumenten direkt darin). In meinem Fall werden die gesuchten Grafiken automatisch als Ordner gezippt. Beim Öffnen der ZIP-Datei müsste ich zu diesem Ordner navigieren, um die darin enthaltene Dateiliste tatsächlich abzurufen (wie [...]\Dateiname.zip\Ordnername\Grafik.tif). Ich habe hauptsächlich versucht, über verschiedene Varianten von darauf zuzugreifen diese Diskussion ebenso gut wie diesen Beitrag hier . Aber immer wenn ich versuche, eine Liste von Dateien innerhalb der Zip-Datei über "<
Ich habe bisher versucht, den Unterordner in die offene Anweisung einzubauen
za = open ("[...]\filename.zip\FolderName\", zip);
Show ( za << dir );Verwenden Sie die geöffnete Zip-Dateireferenz, um weiter nach unten zu navigieren (ich kann mich nicht an die tatsächliche Syntax erinnern, die ich versucht habe, habe sie bereits gelöscht) oder das Auslesen verschiedener Grafikdateien nach Dateinamen aus beiden Versionen
za = open ("[...]\filename.zip\FolderName\", zip);
dat = za << Read( "graphics.tif", Format( blob ) ); or dat = za << Read( "folderName\graphics.tif", Format( blob ) );Gibt es eine Syntax zum Navigieren in einer Ordnerstruktur innerhalb einer ZIP-Datei? Oder besteht alternativ die Möglichkeit, beim Öffnen der Zip-Datei eine "rekursive" Anweisung einzubauen, um alle Dateien zu erhalten, die irgendwo weiter unten verschachtelt sind?
Ich freue mich auf jeden Input, den Sie teilen können.
Mit freundlichen Grüßen
Malte
Betreff: ZIP-Ordner für den Bildimport durchsuchen2 GB ist die Grenze sowohl für die Größe einer Zeichenfolge in JMP als auch für die Größe eines ZIP-Mitglieds in der ZIP-Archivunterstützung von JMP.
(2 GB sind 2^31; das ist die größte Zahl, die in eine 32-Bit-Ganzzahl mit Vorzeichen passt.)
JMP-Blobs sind nicht auf 2 GB beschränkt. Ich denke, eine zukünftige Version von JMP könnte auch Zip-Mitglieder mit mehr als 2 GB zulassen, die dann in einen Blob eingelesen werden könnten.@Paul_Nelson
Möglicherweise können Sie ein externes ZIP-Programm mit dem Run-Programm von JMP skripten. Das externe Programm unterstützt möglicherweise >2 GB, wenn es relativ neu ist.
Betreff: ZIP-Ordner für den Bildimport durchsuchenHi @Craige_Hales
vielen Dank für Ihre schnelle Antwort, ich habe die Syntax mit Ihrer Eingabe zum Laufen gebracht. Leider konnte ich es für mein ursprüngliches Objekt der Begierde nicht zum Laufen bringen...
Wie sich herausstellt, kann ich einige Zip-Dateien mit genau der von Ihnen bereitgestellten Syntax öffnen und auslesen (unabhängig davon, ob ein Schrägstrich oder ein umgekehrter Schrägstrich verwendet wird), während andere immer noch nur leere Listen zurückgeben.
Der Hauptunterschied zwischen Dateien, die ich öffnen kann, und solchen, die ich nicht öffnen kann, scheint die tatsächliche Größe der ZIP-Datei zu sein. Nachdem ich ein bisschen herumgespielt habe, um mehrere Dateien zu öffnen, scheint es, als ob es eine versteckte Grenze gibt, wenn die Dateigröße der Zip-Datei ungefähr 2 GB überschreitet (ich muss mich bei unserer IT-Abteilung erkundigen, ob es andere Unterschiede in gibt die Dateien, auf die ich nicht zugreifen/bestimmen kann).
Wartezeiten von 20 Sekunden zwischen Öffnen und Auslesen des Verzeichnisses sowie zwischen Auslesen des Verzeichnisses und Anzeigen im Log habe ich bereits versucht umzusetzen, damit es nicht mit Rechenzeiten/jmp-Hickups zusammenhängt. Bisher ohne Erfolg.
Kennen Sie Größenbeschränkungen beim Öffnen von Zip-Dateien über jmp oder haben Sie andere Vorschläge, was Sie ausprobieren können?
Mit freundlichen Grüßen
Malte
Betreff: ZIP-Ordner für den Bildimport durchsuchenDies ist verwirrend, da viele Dienstprogramme den Inhalt einer Zip-Datei so darstellen, als gäbe es ein hierarchisches Verzeichnis in der Zip-Datei. Es ist wirklich ein flaches Verzeichnis, und das ZIP-Verzeichnis erfordert nicht, dass die Mitgliedsnamen in irgendeiner Weise Schrägstriche oder Rückwärtsstriche verwenden. Ich habe test.zip mit Windows built in zip erstellt.
za=open("$desktop/test.zip","zip");
za<
Der in Windows eingebaute Browser sieht das so
Windows explorer navigating through a zip archiveWindows-Explorer, der durch ein Zip-Archiv navigiert
Es sieht so aus, als ob Sie in den Mitgliedsnamen Schrägstriche anstelle von Backslashes benötigen.