2010-01-04 21 views
21

में कोई पढ़ने/लिखने की अनुमति मैं एंड्रॉयड 1.5 अपने डेटा निर्देशिका का उपयोग पढ़ने/लिखने की अनुमतिडाटा निर्देशिका एंड्रॉयड

System.out.println("DAta can write??--->"+Environment.getDataDirectory().canWrite()); 
System.out.println("DAta can read??--->"+Environment.getDataDirectory().canRead()); 

नहीं है हूँ तो मुझे सुझाव है कि कृपया डेटा निर्देशिका के लिए अनुमतियाँ प्रदान करने के लिए कैसे है।

मुझे क्या करना कोशिश कर रहा हूँ एक फ़ाइल बनाने और की तरह के रूप में नीचे

private void writeToSDCard() { 
     try { 

      File lroot = Environment.getDataDirectory(); 

      if (lroot.canWrite()){ 
       File lfile = new File(lroot, "samplefile.txt"); 
       FileWriter lfilewriter = new FileWriter(lfile); 
       BufferedWriter lout = new BufferedWriter(lfilewriter); 
       lout.write("XXXXXXXXXXXXXXXXXX"); 
       lout.close(); 
      } 
     } catch (IOException e) { 
      Log.e(m_cTAG, "Could not write file " + e.getMessage()); 
     } 
    } 

उत्तर

64

आप डाटा निर्देशिका पर नहीं किया जाना चाहिए एमुलेटर का डाटा भंडारण में इसे करने के लिए कुछ सामग्री जोड़ने के लिए है। यह फोन के भंडारण में एक सिस्टम निर्देशिका है - आमतौर पर /data - और आपके एप्लिकेशन को इसे लिखने की अनुमति नहीं होगी।

आपके आवेदन को फाइलों को लिखना चाहिए Context.getFilesDir() method द्वारा लौटाया गया है। यह /data/data/com.yourdomain.YourApp/files जैसा कुछ होगा।

यदि आप फोन के भंडारण में किसी फ़ाइल को लिखना चाहते हैं तो Context.openFileOutput() method का उपयोग करें।

यदि आप एसडीकार्ड के लिए पथ चाहते हैं तो Environment.getExternalStorageDirectory() method का उपयोग करें।

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

आप SDCard आप भी अपने राज्य को चेक करना होगा करने के लिए लिखने के लिए जा रहे हैं: SDCard आप अपने प्रकट करने के लिए निम्न को जोड़कर अपना आवेदन उचित अनुमतियां देनी होगी करने के लिए लिखने के लिए getExternalStorageState() विधि के साथ।

यदि आप अपने आवेदन के साथ छोटी फाइलें संग्रहीत कर रहे हैं तो ये फोन के भंडारण में जा सकते हैं, एसडी कार्ड नहीं, इसलिए Context.openFileOutput() और Context.openFileInput() विधियों का उपयोग करें।

OutputStream os = openFileOutput("samplefile.txt", MODE_PRIVATE); 
BufferedWriter lout = new BufferedWriter(new OutputStreamWriter(os)); 
+0

यहाँ वाट मीटर करने के लिए tryng है::

अपने कोड में

तो की तरह कुछ पर विचार निजी शून्य writeToSDCard() { कोशिश { \t फ़ाइल lroot = Environment.getDataDirectory(); \t \t अगर (lroot.canWrite()) { \t फ़ाइल lfile = नई फ़ाइल (lroot, "samplefile.txt"); \t फ़ाइलवाइटर lfilewriter = नया फ़ाइलवाइटर (lfile); \t BufferedWriter lout = new BufferedWriter (lfilewriter); \t lout.write ("XXXXXXXXXXXXXXXXXX"); \t lout.close(); \t} \t} पकड़ो (IOException ई) { \t Log.e (m_cTAG, "फ़ाइल नहीं लिख सका" + e.getMessage()); \t} } –

+0

हाँ आपके मूल्यवान सुझाव के लिए धन्यवाद .. :-) –

+0

धन्यवाद इसने मेरी समस्या हल की। – specialscope

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