2012-09-24 58 views
5

Tôi đang cố lưu một ảnh bitmap vào thư mục Ảnh. Dưới đây là đoạn codecó sự khác biệt giữa/mnt/sdcard và/sdcard không?

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

Nhưng việc thực hiện đã bị mắc kẹt tại OutputStream out = new FileOutputStream(file); tôi đã sử dụng các trình gỡ lỗi và đường dẫn đầy đủ trả mnt/sdcard/Pictures/test1.PNG, là mnt/ thủ phạm do tại sao tôi không thể vượt qua OutputStream out = new FileOutputStream(file);? Bởi vì tôi chỉ có thể thấy sdcard/ trong thư mục tệp của tôi.

cảm ơn!

+0

Giá trị của 'đường dẫn' là gì .. ?? –

+1

lỗi là gì? – njzk2

Trả lời

1

Bạn có thể nhận và truy cập vào thư mục sdcard sử dụng Environment.getExternalStorageDirectory() này là mnt/sdcard hoặc sdcard/thư mục phụ thuộc một thiết bị của mình rằng cách hệ điều hành được tiếp cận và sử dụng thư mục bên ngoài không cần lo lắng cho các thiết bị khác nhau và thư mục khác nhau được trả về bằng phương pháp này.

EDIT

Đối với truy cập lưu trữ bên ngoài cần sự cho phép và xác định trong tập tin androidmanifest.xml như cho phép người dùng

WRITE_EXTERNAL_STORAGE 
+1

cảm ơn rất nhiều vì đã trả lời, đánh giá cao thời gian. rõ ràng cho nó để làm việc người ta phải thiết lập sự cho phép cho WRITE_EXTERNAL_STORAGE, tôi bỏ qua phần này và do đó FileNotFoundException ngay cả sau khi mkdir() được gọi là. – user1694345

0

sử dụng như thế này

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

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

/sdcard là một softlink để /mnt/sdcard ... và /sdcard là chỉ đọc trong hệ thống tập tin để sử dụng tốt hơn /mnt/sdcard/ ..

Các vấn đề liên quan