मेरे पास एक निर्देशिका बनाने और अपने एंड्रॉइड एप्लिकेशन पर एक फ़ाइल सहेजने के साथ थोड़ा मुद्दा है। मैं ऐसा करने के लिए कोड के इस टुकड़े का उपयोग कर रहा हूं:
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
।