0

解决了

我稍微改一下

File path = new File(Environment.getExternalStorageDirectory(), "AndroidPaint");
        File file = new File(path, tmpImg);
        path.mkdirs();
        if(!file.exists()) {
            file.createNewFile();
        }
        os = new FileOutputStream(file);
        source.compress(CompressFormat.JPEG, 100, os);
        os.flush();
        os.close();

问题也可能是我发现的源位图然后是空的

问题

在我的 Android 程序上,我想在外部存储上保存位图,我得到了这样做的许可

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

并得到了一些代码

public class SaveOpen {
public static void save(Bitmap source) {
    String tmpImg = String.valueOf(System.currentTimeMillis()) + ".jpg";
    OutputStream os = null;
    try {
        File dir = new File(Environment.getExternalStorageDirectory(), "myapp");
        if (!dir.mkdirs()) {
            Log.e("save", "Directory not created");
        }
        File file = new File(dir, tmpImg);
        if(!file.exists()) {
            file.createNewFile();
        }
        os = new FileOutputStream(file);
        source.compress(CompressFormat.JPEG, 100, os);
        os.flush();
        os.close();
    }
    catch (IOException e) {
        Log.d("save", e.getMessage());
    }
}

}

但是当我按下我的应用程序上的保存按钮时,我得到了

打开失败:ENOTDIR(不是目录)

例外,我做错了什么。?我尝试了我在谷歌找到的所有指南,请帮助

4

4 回答 4

0

尝试这个:

String myDir = Environment.getExternalStorageDirectory() + "/myapp";

File dir = new File(myDir);
于 2013-06-26T21:22:52.097 回答
0

我遇到了同样的问题,这似乎是Android上的一个错误,我在命令行中通过adb mkdir,也失败了。然后我尝试重新启动手机,再也没有发生过。

于 2014-05-20T02:31:06.033 回答
0

如果有 USB 连接(磁盘模式),则在较旧的设备上无法访问外部存储,因此请记录Environment.getExternalStorageDirectory()您的情况下返回的内容。

于 2013-06-26T21:26:54.573 回答
0

通过添加访问外部存储的权限解决了我的问题:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
于 2014-10-04T08:48:39.223 回答