2011-04-17 17 views
12

मैं एसडी कार्ड प्रोग्रामेटिक रूप से एक नई निर्देशिका बनाना चाहता हूं और मैं उस निर्देशिका को भी हटाना चाहता हूं। मैं यह कैसे कर सकता हूँ?मैं एसडी कार्ड प्रोग्रामेटिक रूप से एक नई निर्देशिका कैसे बना सकता हूं?

उत्तर

34

एक निर्देशिका आप निम्नलिखित कोड का उपयोग कर सकते बनाने के लिए:

File dir = new File("path/to/your/directory"); 
try{ 
    if(dir.mkdir()) { 
    System.out.println("Directory created"); 
    } else { 
    System.out.println("Directory is not created"); 
    } 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

एक खाली निर्देशिका हटाने के लिए आप इस कोड का उपयोग कर सकते हैं:

boolean success = (new File("your/directory/name")).delete(); 
if (!success) { 
    System.out.println("Deletion failed!"); 
} 

एक गैर खाली निर्देशिका हटाने के लिए आप इस कोड का उपयोग कर सकते हैं:

public static boolean deleteDir(File dir) { 
    if (dir.isDirectory()) { 
     String[] children = dir.list(); 
     for (int i=0; i<children.length; i++) { 
      boolean success = deleteDir(new File(dir, children[i])); 
      if (!success) { 
       return false; 
      } 
     } 
    } 

    return dir.delete(); 
} 

हो सकता है कि आप भी इस अनुमति की जरूरत:

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

इस उत्तर भी एक अच्छा स्रोत है:

How to create directory automatically on SD card

+0

इसे पकड़ने में mkdir() विधि को शामिल करने की आवश्यकता नहीं थी, क्योंकि अगर f पुराना अस्तित्व में है, यह झूठी वापसी है और अपवाद फेंक नहीं –

19

, एक निर्देशिका बनाने आप

File myDirectory = new File(Environment.getExternalStorageDirectory(), "dirName"); 

if(!myDirectory.exists()) {         
    myDirectory.mkdirs(); 
} 

इसे हटाने के लिए इस्तेमाल कर सकते हैं करने के लिए,

myDirectory.delete(); 

परमी जोड़ने के लिए मत भूलना ssion:

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
+2

निर्देशिका अस्तित्व की जांच करने की कोई आवश्यकता नहीं है। निर्देशिका में बनाया गया था, विफलता पर झूठी या यदि निर्देशिका पहले से मौजूद है, तो mkdirs() 'सत्य वापस आ जाएगा। –

0

मैं इस तरह अपने प्रोजेक्ट के लिए निर्देशिका और उप निर्देशिका बनाया है ..

 File root = android.os.Environment.getExternalStorageDirectory(); 

     File dir = new File (root.getAbsolutePath() + "/MP3 Music/"); //it is my root directory 

     File favourite = new File (root.getAbsolutePath() + "/MP3 Music/" + "Favourites"); // it is my sub folder directory .. it can vary.. 

     try 
     { 
      if(dir.exists()==false) 
      { 
        dir.mkdirs(); 
      } 
      /* else 
      { 
       // Toast.makeText(MainActivity.this, "Root Directory is already exists", Toast.LENGTH_LONG).show(); 
      }*/ 

      if(favourite.exists()==false) 
      { 
       favourite.mkdirs(); 
      } 

     } 
     catch(Exception e){ 
      e.printStackTrace(); 

     } 
3
mkdir() for 

File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/abcabcabc"); 
directory.mkdir(); 


mkdirs() for 
File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Mani/abcxyz"); 
    directory.mkdirs(); 
1
new File(Environment.getExternalStorageDirectory(), "DirName").mkdirs(); 
0

आप इसे

तहत रूट निर्देशिका और सबफ़ोल्डर बनाना चाहते हैं
String root = Environment.getExternalStorageDirectory().toString(); 

File myDir = new File(root + "/rootfoldername"+"/your sub folder name"); 

File dir=new File(root + "/rootfoldername"+"/your sub folder name"); 

myDir.mkdirs(); 

dir.mkdirs(); 
संबंधित मुद्दे