安卓开发之从assets下获取文件的绝对路径

安卓开发之从assets下获取文件的绝对路径

有时候在写代码的时候需要加载assets下的文件的绝对路径,我们先把文件copy到缓存文件夹中,然后就可以拿到路径了

private String copyAssetAndWrite(String fileName){ try {
File cacheDir=getCacheDir(); if (!cacheDir.exists()){
cacheDir.mkdirs();
}
File outFile =new File(cacheDir,fileName); if (!outFile.exists()){ boolean res=outFile.createNewFile(); if (!res){ return false;
}
}else { if (outFile.length()>10){//表示已经写入一次
return outFile.getPath();
}
}
InputStream is=getAssets().open(fileName);
FileOutputStream fos = new FileOutputStream(outFile);
byte[] buffer = new byte[1024];
int byteCount;
while ((byteCount = is.read(buffer)) != -1) {
fos.write(buffer, 0, byteCount);
}
fos.flush();
is.close();
fos.close(); return outFile.getPath();
} catch (IOException e) {
e.printStackTrace();
} return null;
}

这里填入的filename是assets下的文件名,不管它是assets下面的第几层文件。只需要填写文件名即可比如原文件在assets/face/eye.jpg,这时候只需要填写“eye.jpg”即可,如果不行的话,就把eye这个文件扔到asset下面(就是assets/eye.jpg)
我也是试了很久才发现这样有用,希望对大家有用吧

你可能感兴趣的:(安卓开发之从assets下获取文件的绝对路径)