File.mkdir () y mkdirs () están creando un archivo en lugar de un directorio

Utilizo el código siguiente:

final File newFile = new File("/mnt/sdcard/test/"); newFile.mkdir(); // if I use mkdirs() result is the same 

Y crea un archivo vacío! ¿Por qué?

Usted no usaría mkdirs () a menos que usted quisiera que cada una de esas carpetas en la estructura fuera creada. Trate de no agregar la barra extra en el final de la cadena y ver si funciona.

Por ejemplo

 final File newFile = new File("/mnt/sdcard/test"); newFile.mkdir(); 

Cuando necesito asegurar que todos los dirs para un archivo existan, pero sólo tengo filepath – yo lo hago

  new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs(); 

Tratar de usar

  String rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/"; File file=new File(rootPath); if(!file.exists()){ file.mkdirs(); } 

En primer lugar, no debe utilizar una ruta de acceso de archivo con "/ mnt / sdcard / test", esto puede causar algunos problemas con algunos teléfonos android. Utilice en su lugar:

 public final static String APP_PATH_SD_CARD = "/Test"; String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD; 

Crea un archivo vacío desde que agregó el guión.

Ahora que tiene su ruta de acceso, utilice el código siguiente:

 try { File dir = new File(fullPath); if (!dir.exists()) { dir.mkdirs(); } } catch(Exception e){ Log.w("creating file error", e.toString()); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.