createNewFile - не открыть не удалось: ENOENT ( Нет такого файла или каталога )

? user3425269 @ | Original: StackOverFlow
---

Я не могу понять, что происходит здесь не так ... Я пытался писать это более succicinctly, что не работает . Я положил во всех дополнительных строк после прочтения другие предложения с этой проблемой. Не помогает. Нет понятия, что происходит. Может быть разрешениями связаны? Насколько мне известно, я пытаюсь написать на внутреннюю память и что не нужно специальных разрешений ?

public void outputBitmap(){ 
    String path = Environment.DIRECTORY_PICTURES.toString();
    File folder = new File(path + "/Blabla");
    String filename = new SimpleDateFormat("yyMMddHHmmss").format(Calendar.getInstance().getTime()) + ".png";
    try {
        if (!folder.exists()) {
            folder.mkdirs();
            System.out.println("Making dirs");
        }
        File myFile = new File(folder.getAbsolutePath(), filename);
        myFile.createNewFile();

        FileOutputStream out = new FileOutputStream(myFile);
        myBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
        out.flush();
        out.close();

    } catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

Это идет " Создание каталоги " каждый раз,каталог не оставаться сделал, или что-то . Когда он попадает в myFile.createNewFile (); это дает сообщение об ошибке " открыт ошибка : ENOENT ( Нет такого файла или каталога ) "

Не уверен, что если это связано, ноинформация, которую я пытаюсь вывести от:

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    myBitmap = Bitmap.createBitmap(viewWidth, viewHeight, Bitmap.Config.RGB_565);
    Canvas pngCanvas = new Canvas(myBitmap);
    ...[some maths and stuff]
    canvas.drawLine(...);
    pngCanvas.drawLine(...);
}

Я думал, что я должен быть в состоянии использовать тот же холст для растрового изображения, но вызвало сбой, поэтому я пишу ту же информацию Оба полотна . Так что ... Я не знаю, если это связано с вопросом или совершенно другой плохой вопрос или что.

Искал на все вопросы, которые, казалось, похожи, но не мог найти каких-либо решений, которые работали для меня. Я пытался решить эту проблему в течение нескольких дней теперь . Кто-нибудь знает, что происходит не так ?

Thanks

---

Top 5 ответ

1Hakan Serce @

Вы не правильно используя Environment.DIRECTORY_PICTURES . Это непапка сам по себе, вы должны использовать его в качестве параметра getExternalStoragePublicDirectory () метод . Проверьте здесь: http://developer.android.com/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)