Android没有制作目录(mkdir)

时间:2013-06-26 21:08:59

标签: android

解决

我把它改成了一点点

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();

也有问题可能是源我发现的Bitmap是null

问题

在我的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 个答案:

答案 0 :(得分:0)

试试这个:

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

File dir = new File(myDir);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我遇到了同样的问题,它似乎是Android上的一个bug,我在adb命令行中的mkdir也失败了。然后我尝试重新启动手机,再也不会发生了。

答案 3 :(得分:0)

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

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