Java の入力として zip ファイルを受け取るアプリケーションがあります。私のアプリケーションはzipファイルを解凍し、zipファイル内に256文字を超えるファイル名を含むファイルがあります
解凍せずにzip内のファイルのファイル名を変更できますか
OS:リナックス/マック
OS自体よりも、使用されるファイルシステムの制限です。
これを変更するには、長いファイル名をサポートする別のファイル システムにドライブをフォーマットする必要があります。
数マイルの長さのファイル名が必要な理由は、私にはわかりません。しかし、私ができる唯一のアドバイスは、ファイル名を短くすることです。
::編集::
質問を更新してから。これが正しい答えです。:)
通常、あなたのアプローチは正しいです。ただし、zip に長いファイル名が含まれている場合は、それらを切り詰めることができます。(最初の 250 を取り、残りは無視します。ファイル名が重複している可能性があります。最後に数字を追加してください。残り 5 文字です) もう 1 つのオプションは、ユーザーに新しいファイル名を入力するように求めることです。
.etc の構造を知っている限り、zip ファイル自体を編集することは可能です。
Java 組み込み API で zip ファイルを編集できることを知りません。少し前ですが、Microsoft.NET 用の DotNetZip という名前のこのライブラリに出くわしました。これにより、すべての一般的な機能に加えて、zip ファイル内のエントリ、暗号化、パスワードなどを編集できます。(それは素晴らしいところで)
Java 用の同様のライブラリを探します。
ユーザーが作成するファイルのファイル名を指定している場合は、この例外をスローしないように、短い名前を要求するだけでよいと思います。
しかし、これは読み取り元の既存のファイルの名前のようです。その場合、システム (ファイルまたはオペレーティング、どちらにしても制御できないもの) が有効なファイル名ではないと言っている場合、どのようにしてそれから読み取ることができると期待できますか?