2011-11-14 14 views
13

में फ़ोल्डर बनाते हैं क्या एंड्रॉइड में आंतरिक मेमोरी में फ़ोल्डर्स बनाने की अनुमति है। उदाहरण:एंड्रॉइड आंतरिक मेमोरी

- data 
-- com.test.app (application's main package) 
---databases (database files) 
---files (private files for application) 
---shared_prefs (shared preferences) 

---users (folder which I want to create) 

क्या मैं उदाहरण के लिए आंतरिक मेमोरी में users फ़ोल्डर बना सकता हूं?

+0

([आंतरिक मेमोरी में आवेदन पैकेज में निर्देशिका बनाना] के संभावित डुप्लिकेट http://stackoverflow.com/questions/7105919/creating-directory-in -प्लिकेशंस-पैकेज-ऑन-आंतरिक-स्टोरेज) –

+0

हाँ आप निश्चित रूप से स्मृति के अंदर फ़ोल्डर बना सकते हैं –

उत्तर

34

मैं आंतरिक स्मृति में फ़ोल्डर/फ़ाइल बनाने के लिए इस प्रयोग किया है:

File mydir = context.getDir("mydir", Context.MODE_PRIVATE); //Creating an internal dir; 
File fileWithinMyDir = new File(mydir, "myfile"); //Getting a file within the dir. 
FileOutputStream out = new FileOutputStream(fileWithinMyDir); //Use the stream as usual to write into the file. 
+0

अपवॉट्स से एक उपयोगी उत्तर लगता है .. क्या आप कृपया उसी फ़ाइल की सामग्री को पढ़ने के लिए कोड का उल्लेख कर सकते हैं, लाइन द्वारा लाइन .. अब से फ़ाइल "mydir" निर्देशिका के अंदर है, इसे पढ़ने के लिए कैसे करें .. और निर्देशिका में आगे फ़ोल्डर्स क्या हैं? "पथ" वह है जिसे मैं चिंतित करता हूं। –

+1

@ गौतम एम। जांचें कि यह ट्यूटोरियल आपके लिए काम करता है या नहीं। धन्यवाद। http://www.mysamplecode.com/2012/06/android-internal-external-storage.html – JibW

+0

yup अच्छा ट्यूटोरियल ... –

3

context.getDir ("mydir", ...); यह your.package बनाता है/app_mydir/

/** Retrieve or creates <b>path</b>structure inside in your /data/data/you.app.package/ 
* @param path "dir1/dir2/dir3" 
* @return 
*/ 
private File getChildrenFolder(String path) { 
      File dir = context.getFilesDir(); 
    List<String> dirs = new ArrayList<String>(Arrays.<String>asList(path.split("/"))); 
    for(int i = 0; i < dirs.size(); ++i) { 
     dir = new File(dir, dirs.get(i)); //Getting a file within the dir. 
     if(!dir.exists()) { 
      dir.mkdir(); 
     } 
    } 
    return dir; 
} 
6

आप इस प्रयोग नहीं करना चाहिए यदि आप चाहते हैं उपयोगकर्ता द्वारा पहुँचा जा के लिए अपनी फ़ाइलें आसानी से

File newdir= context.getDir("DirName", Context.MODE_PRIVATE); //Don't do 
if (!newdir.exists()) 
    newdir.mkdirs(); 

इसके बजाय, इस कार्य करें:

निर्देशिका बनाने के लिए फोन प्राथमिक भंडारण स्मृति (आमतौर पर आंतरिक मेमोरी) पर आपको निम्नलिखित कोड का उपयोग करना चाहिए। कृपया ध्यान दें Environment.getExternalStorageDirectory (में है कि ExternalStorage) जरूरी नहीं करता sdcard के लिए संदर्भित करता है, यह

File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "MyDirName"); 

if (!mediaStorageDir.exists()) { 
    if (!mediaStorageDir.mkdirs()) { 
     Log.d("App", "failed to create directory"); 
    } 
} 

निर्देशिका इस कोड का उपयोग आसानी से फोन उपयोगकर्ता को दिखाई देगी, बनाया फोन प्राथमिक भंडारण स्मृति देता है। दूसरी विधि (पहले उल्लेख किया गया) स्थान (/data/data/package.name/app_MyDirName) में निर्देशिका बनाता है, इसलिए सामान्य फोन उपयोगकर्ता इसे आसानी से एक्सेस नहीं कर पाएगा और इसलिए आपको इसे वीडियो/फोटो इत्यादि स्टोर करने के लिए उपयोग नहीं करना चाहिए।

आपको अनुमतियों की आवश्यकता होगी, AndroidManifest.xml में

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

हाँ, आप सही हैं, getExternalStorageDirectory() फोन के प्राथमिक भंडारण को संदर्भित करता है, आप कैसे करते हैं फिर एसडी कार्ड में एक फ़ोल्डर बनाएँ ?? –

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