CreateNewFile - abrir falhou: ENOENT ( Nenhum arquivo ou diretório)

? user3425269 @ | Original: StackOverFlow
---

Eu não consigo descobrir o que está acontecendo de errado aqui ... Eu tentei escrever este mais succicinctly, que não funcionou. Eu coloquei em todas as cordas extras depois de ler outras sugestões com este problema. Não está ajudando . Sem idéia do que está acontecendo. Poderia relacionado permissões de ser? AFAIK Estou tentando escrever para a memória interna e que não necessita de permissões especiais ?

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

Ele vai " Fazendo dirs " cada vez, o diretório não é ficar feito, ou algo assim. Quando se chega ao myFile.createNewFile (); ele dá a mensagem de erro " Falha na abertura : ENOENT ( Nenhum arquivo ou diretório) "

Não tenho certeza se ele está relacionado, mas a informação que eu estou tentando saída é a partir de:

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

Eu pensei que eu deveria ser capaz de usar a mesma tela para o bitmap, mas que causou caiu, por isso estou escrevendo as mesmas informações para ambos telas. Então ... Eu não sei se isso é relacionado com a emissão ou um mau problema totalmente diferente ou o quê.

Já esteve procurando todos os tipos de perguntas que pareciam semelhantes, mas não conseguimos encontrar soluções que funcionaram para mim . Eu venho tentando resolver isso por dias agora. Alguém sabe o que está acontecendo de errado ?

Thanks

---

Top 5 Responder

1Hakan Serce @

Você não está usando Environment.DIRECTORY_PICTURES corretamente. Não é uma pasta, por si só, você precisa usá-lo como um parâmetro para o método () getExternalStoragePublicDirectory . Confira aqui : http://developer.android.com/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)