1

私は問題があります。

このコードを使用して、zipファイルの内容を読み取ります。

    File file = new File(TogglesManager.EXTERNAL_STORAGE_THEMES_DIRECTORY+"filename.zip");
    ZipFile zip = new ZipFile(file);

しかし、アセットを使おうとすると、がありFileNotFoundExceptionます。

アセットのzipファイルを読み取るには、次のコードを使用します。

    File file = c.getFileStreamPath("assetsFile.zip");
    ZipFile zip = new ZipFile(file);

「ファイル」はnullではありません。これは、書き込むfile.getName();と正しいファイル名が表示されるためです。

ZipInputStreamクラスは使いたくないけどZipFile

4

1 に答える 1

3

通常のファイル操作を使用してアセットにアクセスすることはできません。使用する必要があります

AssetManager assetManager = mContext.getAssets();
InputStream is = assetManager.open("assetsFile.zip");

ただし、ZipFileはInputStreamをパラメーターとして受け取らないため、アセットファイルを内部ストレージにコピーしてから使用する必要があります。File

さらにAFAIK、apkはzip形式であるため、zip形式のファイルをアセット内に保存しても、使用されるストレージはあまり変更されない可能性があります。したがって、アセット内でzipファイルを使用する必要はないかもしれません。

于 2012-11-19T19:28:31.923 に答える