ฉันมีปัญหาเล็กน้อยกับการสร้างไดเร็กทอรีและบันทึกไฟล์ลงในแอปพลิเคชัน Android ของฉัน ฉันใช้โค้ดชิ้นนี้เพื่อทำสิ่งนี้:
String filename = "MyApp/MediaTag/MediaTag-"+objectId+".png";
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream fos;
fos = new FileOutputStream(file);
fos.write(mediaTagBuffer);
fos.flush();
fos.close();
แต่มันมีข้อยกเว้น:
java.io.FileNotFoundException: /mnt/sdcard/MyApp/MediaCard/MediaCard-0.png (ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว)
ในบรรทัดนั้น: fos = new FileOutputStream(file);
ถ้าฉันตั้งชื่อไฟล์เป็น: "MyApp/MediaTag-"+objectId+"
มันใช้งานได้ แต่ถ้าฉันพยายามสร้างและบันทึกไฟล์ไปยังไดเร็กทอรีอื่นมันจะทำให้เกิดข้อยกเว้น มีความคิดอะไรที่ฉันทำผิด?
และอีกคำถาม: มีวิธีใดบ้างที่จะทำให้ไฟล์ของฉันเป็นส่วนตัวในที่จัดเก็บข้อมูลภายนอกเพื่อให้ผู้ใช้ไม่สามารถเห็นไฟล์เหล่านี้ในแกลเลอรีได้เฉพาะเมื่อเขาเชื่อมต่ออุปกรณ์ของเขาเป็นDisk Drive
?
Environment.getExternalStorageDirectory()
แทน/sdcard
.