assetsフォルダのファイルを扱う方法 AssetManager

resフォルダのファイルはリソースIDでアクセスしますが、assetsフォルダのファイルはファイル名でのアクセスとなります。

[参考記事] assetsフォルダには1MB以上の非圧縮ファイルを設置できない



assetsファイルを扱うには、基本的にAssetManagerを使用します。
AssetManager [android developers]

スポンサーリンク

assetsフォルダのファイル一覧を取得する

ファイル一覧を取得するには、listメソッドにフォルダパス(フォルダ名)を渡すと、String配列で得ることができます。
パスはassetsからのパスです。
assets/images/…….jpg のような場合は 『 images 』を渡します。

String[] AssetManager#list(String フォルダパス)
AssetManager assetManager = getResources().getAssets();
String[] fileList = null;
try {
  fileList = assetManager.list("images");
} catch (IOException e) {
  e.printStackTrace();
}

assetsフォルダのファイルを開く

assetsフォルダのファイルは、InputStream・AssetFileDescriptor・XmlResourceParserで得ることができます。

InputStream         AssetManager#open(String ファイル名)
AssetFileDescriptor AssetManager#openFd(String ファイル名)
XmlResourceParser   AssetManager#openXmlResourceParser(String ファイル名)
AssetManager assetManager = getResources().getAssets();
InputStream is;
try {
  is = assetManager.open("images/test.jpg");
} catch (IOException e) {
  e.printStackTrace();
}

openには第2引数にaccessModeを指定することができます。指定しないときはACCESS_STREAMINGです。
AssetManager.ACCESS_BUFFER
AssetManager.ACCESS_RANDOM
AssetManager.ACCESS_STREAMING
AssetManager.ACCESS_UNKNOWN

当然ながらassetsフォルダはapkパッケージ内のファイルなので、削除することはできません。

関連記事

スポンサーリンク

register_postfilter() ポストフィルタを動的に登録します

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る