2012-10-17 13 views
5

मैं आवेदन use.I के लिए फ़ाइलों को संग्रहीत करने के लिए उपकरण के आंतरिक स्मृति में एक निर्देशिका बनाने हूँ में फ़ाइलों की संख्या की जांच का उपयोग कर रहा है:एंड्रॉयड कैसे मैं एक निर्देशिका

File dir = context.getDir(userfavorites, Context.MODE_PRIVATE); 

ऊपर कोड एक नया पैदा करेगा निर्देशिका अगर यह अस्तित्व में नहीं है या मुझे मौजूदा फ़ाइल ऑब्जेक्ट देता है यदि निर्देशिका पहले से ही बनाई गई है। जो मैं जांचना चाहता हूं वह इस निर्देशिका में मौजूद फाइलों की संख्या और नाम है। मैं इस कार्य को पूरा करने के लिए इस फ़ाइल ऑब्जेक्ट का उपयोग कैसे करूं।

नोट: मैं डिवाइस की बाहरी मेमोरी का उपयोग नहीं करना चाहता हूं। और मैं निर्देशिका बनाने से भी नहीं बच सकता क्योंकि निर्देशिका में फ़ाइलों को अन्य फ़ाइलों से अलग किया जाना चाहिए जो निर्देशिका में नहीं हैं।

अपडेट किए गए कोड:

private static boolean IsFoldercontainsFiles(Context context) { 
     // TODO Auto-generated method stub 
     File dir = context.getDir(USER_FAV, Context.MODE_PRIVATE); 
     if (dir.exists()) { 
        if (dir.listFiles() == null){ 
        return false;} //it never execute this line even though its null 
        else{ 
      File childfile[] = dir.listFiles(); 
      Log.i("file no is ", Integer.toString(childfile.length)); 
      if (childfile.length == 0) { 
       return false; 
      } else { 
       return true; 
      } 
       } 
     } else { 
      return false; 
     } 
    } 

अग्रिम धन्यवाद

उत्तर

8

चेक File की listFiles विधि है कि आप बच्चों की सूची दे देंगे।

+0

मुझे लगता है कि यह काम करना चाहिए ... मुझे – Anshul

+0

आज़माएं, लेकिन अगर मैं जांचता हूं कि (dir.listFiles() == null) तो यह हमेशा y यह शून्य नहीं है, भले ही निर्देशिका निर्देशिका में कुछ भी नहीं है। क्या मैं शून्य जांच के लिए गलत तरीका देख रहा हूं? कृपया – Anshul

+0

मदद करें क्या आप अपना कोड पोस्ट कर सकते हैं? – Rajesh

5

कोशिश इस

File childfile[] = dir .listFiles(); 
for (File file2 : childfile) { 
    Log.v("file name is ", file2.getName()); 
} 
यहाँ

listFiles() "dir" के लिए सभी childfiles लौट सकते हैं और इस पुनरावृत्ति आप childfiles

+0

धन्यवाद शरथ ... आपका समाधान सही है – Anshul

+0

लेकिन अगर मैं जांचता हूं कि (dir.listFiles() == null) तो यह हमेशा यह शून्य नहीं कहता है, भले ही निर्देशिका निर्देशिका में कुछ भी नहीं है। मैं शून्य जांच के लिए गलत तरीका की जांच कर रहा हूं? कृपया – Anshul

+0

मदद करें, आप अपना कोड –

7
File file=new File("/mnt/sdcard/yourfolder"); 
     File[] list = file.listFiles(); 
     int count = 0; 
     for (File f: list){ 
      String name = f.getName(); 
      if (name.endsWith(".jpg") || name.endsWith(".mp3") || name.endsWith(".some media extention")) 
       count++; 
      System.out.println("170 " + count); 
     } 
-1

सरल के नाम प्राप्त करने के लिए मदद मिलेगी:

File dir = new File(path); // "/mnt/sdcard/yourfolder" 

long totalNumFiles = dir.listFiles().length; 
+2

केवल कोड को डंप करने के बजाय कुछ विवरण जोड़ें। –

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