2012-09-24 16 views
5

Estoy intentando guardar un mapa de bits en el directorio de Imágenes. Aquí está el código¿hay alguna diferencia entre/mnt/sdcard y/sdcard?

  File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 

      File file = new File(path, "test1.PNG"); 
      try { 
        path.mkdirs(); 
        OutputStream out = new FileOutputStream(file); 
        mBitmap.compress(Bitmap.CompressFormat.PNG, 90, out); 
        out.flush(); 
        out.close(); 

      } catch (Exception e) { 
        e.printStackTrace(); 
        Log.w("ExternalStorage", "Error writing " + file, e); 
      } 

Pero la ejecución quedó atascado en OutputStream out = new FileOutputStream(file); He utilizado el depurador y la ruta completa retornos mnt/sdcard/Pictures/test1.PNG, es mnt/ el culpable por eso no podía pasar OutputStream out = new FileOutputStream(file);? Porque solo puedo ver sdcard/ en mi directorio de archivos.

gracias!

+0

¿Cuál es el valor de 'path' .. ?? –

+1

¿cuál es el error? – njzk2

Respuesta

1

Usted puede obtener y acceder al directorio sdcard usar este Environment.getExternalStorageDirectory() como la/el directorio depende mnt/sdcard o sdcard un dispositivo que la forma de SG fue de acceso y uso del directorio externo sin necesidad preocuparse por el dispositivo diferente y el directorio diferente fue devuelto por este método.

EDITAR

Para acceder a almacenamiento externo necesitan permiso y definen en el archivo como androidmanifest.xml permiso del usuario

WRITE_EXTERNAL_STORAGE 
+1

muchas gracias por su respuesta, aprecie el tiempo. aparentemente para que funcione uno debe establecer el permiso para WRITE_EXTERNAL_STORAGE, pasé por alto esta parte y, por lo tanto, la excepción FileNotFoundException incluso después de llamar a mkdir(). – user1694345

0

uso como esto

String filePath = "/sdcard/yourfile.txt"; 

FileOutputStream os = null; 
os = new FileOutputStream(filePath); 
os.write(write it to file); 
os.close(); 
3

/sdcard es un enlace simbólico a /mnt/sdcard ... y /sdcard es de sólo lectura en el sistema de archivos así que mejor use /mnt/sdcard/ ..

Cuestiones relacionadas