2012-12-12 9 views
16

ZIP-Einträge speichern den vollständigen Pfadnamen des Eintrags, weil (ich bin mir sicher, der nächste Teil) das ZIP-Archiv nicht als Verzeichnisse organisiert ist. Die Metadaten enthalten Informationen darüber, wie Dateien gespeichert werden sollen (in Verzeichnissen).Dateitrennzeichen des Pfadnamens von ZipEntry?

Wenn ich eine ZIP-Datei in Windows erstellen, wenn ich die Daten in einem anderen Betriebssystem entzippen, z. Unter Mac OS X bleibt die Dateistruktur wie in Windows. Liegt das daran, dass der Entpacker dafür ausgelegt ist, oder weil die Dateitrennzeichen im ZIP Standard sind?

Ich frage das, weil ich versuche, einen Eintrag in einer ZIP-Datei mit dem Namen der gezippten Datei zu finden. Aber welches Dateitrennzeichen sollte ich verwenden, damit es in anderen Systemen als Windows funktioniert?

Ich verwende Java, und die Methode: .getName() der ZipEntry gibt mir den Pfad mit dem Windows-Dateitrennzeichen \. Wäre es genug, wenn ich das Java-Trennzeichen File.separator verwenden würde, damit es auf einem anderen Betriebssystem funktioniert? Oder muss ich versuchen, meine Datei mit jedem möglichen Trennzeichen zu finden?

+0

also, wenn Sie entpacken Sie nicht wollen entpacken Sie die Datei mit absoluten Pfad? – vels4j

+0

Nein, das Problem ist, während ich nach der Datei suche, wie sollte ich die Dateitrennzeichen in meinem Pfad einstellen, um es zu machen, egal whar OS ist die Plattform für meine Anwendung ... – Ordiel

Antwort

11

Der Dateitrenner hängt von der Anwendung ab, die die ZIP-Datei erstellt. Einige Anwendungen verwenden das Systemdateitrennzeichen, während andere den "zivilisierten" Schrägstrich "/" verwenden. Wenn Sie also die ZIP-Datei erstellen und dann konsumieren, können Sie einfach einen Schrägstrich als Dateitrennzeichen verwenden. Wenn die Zip-Datei irgendwo anders erstellt wird, sollten Sie herausfinden, welches Trennzeichen verwendet wurde. Ich kenne keine einfache Methode, aber Sie können eine Brute-Methode verwenden und beide Separator-Typen überprüfen, während Sie fortfahren.

Einige Anwendungen, insbesondere benutzerdefinierte Zip-Erstellungscodes, können die Trennzeichen in verschiedenen Zip-Einträgen mischen. Vergessen Sie also nicht, jeden Eintrag auszuprobieren.

5

Die .zip file specification Staaten:

4.4.17.1 Der Name der Datei, wahlweise mit relativem Pfad. Der gespeicherte Pfad darf kein Laufwerk oder Gerätebuchstabe oder einen führenden Schrägstrich enthalten. Alle Schrägstriche MUSS vorwärts Schrägstriche '/' im Gegensatz zu rückwärts Schrägstriche '\' für die Kompatibilität mit Amiga und UNIX-Dateisysteme etc. Wenn Eingabe von Standard Eingabe kam, gibt es kein Dateinamensfeld.