私はZipFileを持っていて、その中の各エントリのオフセット/サイズで配列を作成したいと思います。これは、C++層(JNI)がこれらのサブファイルを抽出せずに直接読み取ることができるようにするためです。JavaでZipFileエントリのファイルオフセットを見つける方法はありますか?
私はファイルの圧縮されたサイズをentry.getCompressedSize()を使用して取得できますが、zip内のファイルのオフセットを見つけるための何も表示されません。
Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
while (zipEntries.hasMoreElements())
{
ZipEntry zip = (ZipEntry)zipEntries.nextElement();
//long offset = ?
long fileSize = zip.getCompressedSize();
}
これを取得する簡単な方法はありますか?
あなたは本当に解決しようとしている問題は何ですか?全体的にはこれは奇妙な技術的アプローチのように聞こえます。それ以外の方法はわかりません。 –
ネイティブコードをプロジェクト資産に直接アクセスできないAndroid NDK r4を使用して構築されたプロジェクトがあります。オフセット/ファイルサイズをネイティブコードに渡してファイル操作をオーバーライドしてファイルの開始/終了位置を使用してアセットファイルから直接値をロードしました。私が(nda)に入ることができない理由のために、私は今、追加の.zipファイルを読む必要があり、私はこの情報を得るAssetFileDescriptorを持っていません。 –
解決策が見つからない場合は、Javaを使用して解凍して、tempまたは(どこにでもデータを格納しない場合)メモリからファイルコンテンツを提供することができます。 –