0

これは明らかな質問かもしれませんが、答えを見つけることができなかったようです。

TrueZip 7.7.1 を使用し、ZipFile のインスタンスを作成して ZIP アーカイブを読み取ります。ZipFile からエントリまたは入力ストリームを取得する場合、エントリ名を指定する必要があります。エントリ名には、それが作成されたファイル システムのパス区切り文字が含まれる場合があります。現在の実装はナイーブで、JVM によって提供される File.separator を使用しますが、アーカイブが別のセパレーターを使用してファイル システム上に作成された場合、これは機能しません。

どちらのプラットフォームでも File.separator または "/" を使用できるように見えるため、TPath でこれを行う方法があるようです。

TrueZip 7.7.1 を使用して、プラットフォームに依存しないマナーで ZIP アーカイブを読み取る最良の方法は何ですか?

4

1 に答える 1

3

ZIP ファイル形式の仕様 (リンク) によると、すべてのパスは「/」で保存する必要があります (したがって、プラットフォームに依存しません)。

4.4.17.1 オプションの相対パスを含むファイルの名前。保存されるパスには、ドライブまたはデバイスの文字、または先頭のスラッシュを含めてはなりません。すべてのスラッシュは、Amiga および UNIX ファイル システムなどとの互換性のために、バックスラッシュ '\' ではなくスラッシュ '/' でなければなりません。入力が標準入力から来た場合、ファイル名フィールドはありません。

したがって、この規則に固執するだけであれば、実行しているプラ​​ットフォームについてまったく心配する必要はありません。

于 2014-11-12T03:36:48.717 に答える