Estoy tratando de crear un archivo para iniciar sesión, pero cuando creo el archivo obtengo un error de Archivo o Directorio no encontrado. No estoy seguro de lo que estoy haciendo mal. Este es el código que crea el archivo:

    File directory = new File(Environment.DIRECTORY_DOCUMENTS,"test");
    directory.mkdirs();

    File file = new File(directory, fileName.trim()+".txt");

    if(!file.exists()){
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }

    }

El error está siendo lanzado por createNewFile (). Que esta causando este error?

0
David 28 dic. 2016 a las 21:28

3 respuestas

La mejor respuesta

El problema fue causado por la aplicación que no solicitó permisos en tiempo de ejecución como sugirió greenapps.

0
David 29 dic. 2016 a las 21:06

Debe usar getExternalPublicDirectory(Environment.DIRECTORY_DOCUMENTS) para recuperar el directorio normal de Documentos.

directory.mkdirs();

No llames mkdirs a ciegas. Pero solo si el directorio no existe. Y luego verifique el valor de retorno ya que podría fallar al crear uno.

0
greenapps 28 dic. 2016 a las 19:39

Cree un directorio de documentos primero.

File docDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS); 
    if (!docDir.exists()) {
       if(docDir.mkdirs()) {
       File directory = new File(docDir,"test");

    } else {
     // Unable to create document directory. check Run time permissions
    }
}
0
Rahul 29 dic. 2016 a las 05:14