2012-08-02 15 views
22

मैं इसे निजी बनाने के लिए अपने ऐप के आंतरिक संग्रहण में एक तस्वीर सहेजना चाहता हूं। तो मैंने थोड़ा सा शोध किया और निर्देशिका प्राप्त करने के 2 तरीके देखे।एंड्रॉइड पर GetDir और getFilesDir के बीच क्या अंतर है?

1.With getDir:

File dir = getDir(Environment.DIRECTORY_PICTURES, Context.MODE_PRIVATE); 

2. getFilesDir:

File dir = getFilesDir(); 

कौन सा सबसे अच्छा है? जो आंतरिक संग्रहण में स्थान लौटाता है?

फाइल लिखने का तरीका आपके डीआईआर के तरीके पर निर्भर करता है? मैं थोड़ा हारा हूं क्योंकि एंड्रॉइड में फाइलें लिखने के कई तरीके हैं।

उत्तर

28

getFilesDir() एक फ़ाइल ऑब्जेक्ट को उस निर्देशिका में देता है जो आपके एप्लिकेशन के लिए केवल निजी है। जब आप openFileOutput(String, int) का उपयोग करते हैं, तो आपके द्वारा लिखे गए डेटा को सीधे इस निर्देशिका में संग्रहीत किया जाता है और किसी अन्य एप्लिकेशन द्वारा पहुंच योग्य नहीं होता है। इसमें आपकी एप्लिकेशन फाइलें हैं।

getDir() आपको आंतरिक मेमोरी में कोई भी फ़ाइल या निर्देशिका बनाने में सक्षम बनाता है, जो आपके द्वारा बनाए गए मोड के आधार पर अन्य अनुप्रयोगों द्वारा भी पहुंचा जा सकता है। openFileOutput(String, int) इस के आउटपुट के साथ काम नहीं करेगा, इसलिए आपको इस निर्देशिका या फ़ाइल से निपटने के लिए फ़ाइलों को लिखने और पढ़ने के अन्य साधनों का उपयोग करना होगा। यह केवल आपके आवेदन द्वारा उपयोग की जाने वाली फ़ाइलों के अलावा कस्टम फ़ाइलों को बनाने के लिए अधिक उपयोग किया जाता है।

+0

धन्यवाद! और 'फाइल dir = getDir (Environment.DIRECTORY_PICTURES, Context.MODE_PRIVATE);' मुझे आंतरिक मेमोरी में 'फ़ाइल' मिलेगा ('MODE_PRIVATE' की वजह से)? – cleroo

+0

आपका स्वागत है। MODE_PRIVATE getDir के लिए डिफ़ॉल्ट निरंतर है और यह कहता है कि आपकी फ़ाइल/निर्देशिका आपके एप्लिकेशन के लिए निजी होगी। getDir हमेशा एक आंतरिक निर्देशिका वापस/बना देगा। इस तथ्य के लिए देखें कि DIRECTORY_PICTURES API 8 और ऊपर के लिए है। – Erol

+0

@Erol तो क्या मैं निष्कर्ष निकाल सकता हूं कि 'MODE_PRIVATE' के साथ getDir getFilesDir के समान है ...? –

संबंधित मुद्दे