记录一下:
private static final String CACHE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/DownFile/";
void addBitmapToLocalCache(String url, Bitmap bitmap) {
try {
File file = new File(CACHE_PATH, url);
File parentFile = file.getParentFile();
if (!parentFile.exists()) {
parentFile.mkdirs();
}
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
注意这句代码parentFile.mkdirs()
不是parentFile.mkdir()!!!
都怪自己粗心,还看了好久
这里给出file.mkdir() 和 file.mkdirs() 的区别:
mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹, 如下:
new File("/tmp/one/two/three").mkdirs();
执行后, 会建立tmp/one/two/three四级目录
new File("/tmp/one/two/three").mkdir();
则不会建立任何目录, 因为找不到/tmp/one/two目录, 结果返回false