CreateNewFile - öffnen, ist fehlgeschlagen : ENOENT ( Keine solche Datei oder das Verzeichnis )

? user3425269 @ | Original: StackOverFlow
---

Ich kann nicht herausfinden, was hier falsch ... Ich habe versucht, dies schreibe mehr succicinctly, das nicht funktioniert. Ich in all den zusätzlichen Saiten legte nach der Lektüre anderer Übersetzungsvorschläge mit diesem Problem. Nicht zu helfen . Keine Ahnung, was passiert. Könnte es sein, die Berechtigungen zu tun hat? AFAIK Ich versuche, in den internen Speicher zu schreiben und der nicht notwendigerweise spezielle Berechtigungen ?

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

Es geht "Making dirs " jedes Mal, wird das Verzeichnis nicht bleiben aus, oder so etwas. Wenn es geht, um myFile.createNewFile (); es gibt die Fehlermeldung "open failed: ENOENT ( Datei oder Verzeichnis) "

Nicht sicher, ob es im Zusammenhang, aber die Informationen Ich versuche, Ausgabe bezieht sich auf:

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

Ich dachte, ich sollte in der Lage, die gleiche Leinwand für die Bitmap verwenden, aber das verursacht stürzte, so schreibe ich die gleichen Informationen zu beiden Leinwände. So ... Ich weiß nicht, ob das ist im Zusammenhang mit der Ausgabe oder eine ganz andere schlechte Frage, oder was .

Sie waren auf der Suche alle möglichen Fragen, die ähnlich schien, konnte aber keine Lösungen, die für mich gearbeitet zu finden. Ich habe versucht, dies für Tage jetzt lösen. Wer weiß, was falsch läuft ?

Thanks

---

Top 5 Antwort

1Hakan Serce @

Sie sind Environment.DIRECTORY_PICTURES nicht richtig mit . Es ist nicht ein Ordner von selbst, müssen Sie es als Parameter an getExternalStoragePublicDirectory () -Methode verwenden . Überprüfen Sie hier: http://developer.android.com/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)