您的位置:首页 > 移动开发 > Android开发

Android assets目录资源读取

2015-03-11 14:02 711 查看
Android 应用程序内置资源放到assets文件夹下,可在里面新建目录,注意资源和目录不能有中文,获取资源的方法如下:

1. 用getResources().getAssets()方法得到AssetManager对象

2. assetManager.list("") 得到assets文件夹下所有文件名。如果assets文件夹里有文件夹叫xml,得到文件名的方法为assetManager.list("xml"),路径都是相对assets路径的。

3. 如果在assets文件夹下的文件夹为空文件夹,获取assets下文件名时会忽略空文件夹。

4. 在assets文件夹下影藏了3个带文件的文件夹,分别是images、sounds、webkit。images里面有两张png格式图片,图片如图:





示例代码:

private void copyAssetsToFiles(Context context) {
String[] files;
try {
//注意:在assets文件夹下影藏了三个带文件的文件夹,分别是images、sounds、webkit
//返回数组files里面会包含这三个文件夹
files = context.getResources().getAssets().list("");
} catch (IOException e1) {
return;
}

String File_PATH = context.getFilesDir().getPath() + "/";
File mWorkingPath = new File(File_PATH);
if (!mWorkingPath.exists()) {
mWorkingPath.mkdirs();
}

for (int i = 0; i < files.length; i++) {
try {
String fileName = files[i];
File outFile = new File(mWorkingPath, fileName);
if (outFile.exists()) {
continue;
}

InputStream in = context.getAssets().open(fileName);
OutputStream out = new FileOutputStream(outFile);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}

in.close();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: