【发布时间】:2014-02-22 04:32:22
【问题描述】:
我已经用谷歌搜索了很多关于我的问题的信息,但我真的不明白我做错了什么,我只想将图像保存到特定文件夹中的 sdcard,但 folder.mkdir() 总是返回 false我得到一个例外
java.io.FileNotFoundException: /mnt/sdcard/sakhcomcache/tv/1.gif: open failed: ENOENT (No such file or directory)
当然我的清单中有权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
这是我的代码
.....
private final static String CACHE_PATH = "/sakhcomcache/";
public final static String CACHE_FOLDER_TV = "/tv";
.....
public static void saveImageOnSDCard(final Bitmap image, final String cacheFolder, final String name) {
new Thread(new Runnable() {
@Override
public void run() {
try {
File folder = new File(Environment.getExternalStorageDirectory() + CACHE_PATH + cacheFolder);
if (!folder.exists()) {
boolean create_succes = folder.mkdir();
//create_succes always false
if(create_succes){
Log.i("create_succes", "create_succes");
}
}
File imageFile = new File(folder +"/"+ name.substring(name.lastIndexOf("/")));
if (!imageFile.exists()) {
FileOutputStream out = new FileOutputStream(imageFile);
image.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
Log.i("save succes", "save succes");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
【问题讨论】:
-
公共最终静态字符串 CACHE_FOLDER_TV = "/tv/"