2012-01-19 13 views
6

मुझे फ़ोल्डर से सभी ".txt" फ़ाइलों को पढ़ने की आवश्यकता है (उपयोगकर्ता को इस फ़ोल्डर का चयन करने की आवश्यकता है)।जावा का उपयोग कर एक फ़ोल्डर से सभी टेक्स्ट फ़ाइलों को कैसे प्राप्त करें?

कृपया सलाह दें कि यह कैसे करें?

+3

कैसे SPRI से संबंधित कार्य कर रहा है एनजी एमवीसी? –

+2

आपने क्या प्रयास किया है? आप इसे जावा में नियंत्रक प्रोग्राम –

+0

के भीतर ऐसा कर सकते हैं जैसे फ़ोल्डर क्लाइंट साइड पर होगा? – Manish

उत्तर

10

आप filenamefilter वर्ग का उपयोग कर सकते यह बहुत सरल उपयोग public static void (String [] args) फेंकता IOException {

है
File f = new File("c:\\mydirectory"); 

    FilenameFilter textFilter = new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return name.toLowerCase().endsWith(".txt"); 
     } 
    }; 

    File[] files = f.listFiles(textFilter); 
    for (File file : files) { 
     if (file.isDirectory()) { 
      System.out.print("directory:"); 
     } else { 
      System.out.print("  file:"); 
     } 
     System.out.println(file.getCanonicalPath()); 
    } 

} 

सिर्फ एक filenamefilter उदाहरण एक ओवरराइड विधि स्वीकार बनाने जैसे आप चाहें

+0

+1 ['FilenameFilter'] (http://docs.oracle.com/javase/7/docs/api/java/io/FilenameFilter.html)। –

1

आपको directory पढ़ने और इसके अंदर फिर से पढ़ने की आवश्यकता है।

यह मान लिया जाये कि आप पहले से ही निर्देशिका की तुलना में MVC के बारे में

+0

में डायर नाम दर्ज करने के लिए कहता है निर्देशिका निर्देशिका में है, यह काम नहीं करेगा। – Manish

2

फाइल सिस्टम के लिए जावा का उपयोग पर एक प्रश्न अधिक है, तो आप कुछ इस तरह कर सकते हैं:

File directory= new File("user submits directory"); 
for (File file : directory.listFiles()) 
{ 
    if (FileNameUtils.getExtension(file.getName()).equals("txt")) 
    { 
     //dom something here. 
    } 
} 

FileNameUtils.getExtension () here पाया जा सकता है।

संपादित करें: आप क्या करना चाहते हैं वेब ब्राउज़र से फ़ाइल संरचना का उपयोग करना है। this पिछले एसओ पोस्ट के मुताबिक, सुरक्षा कारणों से आप क्या करना चाहते हैं।

+0

निर्देशिका क्लाइंट पक्ष पर है, यह काम नहीं करेगा। – Manish

+0

यह काम करता है, जब उपयोगकर्ता फ़ाइल का चयन करता है, फ़ाइल कन्स्ट्रक्टर –

+0

पर पथ पास करता है यह केवल तभी काम करेगा जब चयनित फ़ोल्डर सर्वर पक्ष पर है (जो यहां मामला प्रतीत नहीं होता है)। आप सर्वर पक्ष से क्लाइंट साइड पर किसी फ़ोल्डर तक नहीं पहुंच सकते हैं। – Manish

1

मैंने निम्न फ़ंक्शन लिखा है जो निर्देशिका के अंदर सभी टेक्स्ट फ़ाइलों को खोजेगा।

public static void parseDir(File dirPath) 
    { 

     File files[] = null; 
     if(dirPath.isDirectory()) 
     { 
      files = dirPath.listFiles(); 
      for(File dirFiles:files) 
      { 

       if(dirFiles.isDirectory()) 
       { 
        parseDir(dirFiles); 
       } 
       else 
       { 
        if(dirFiles.getName().endsWith(".txt")) 
        { 
         //do your processing here.... 
        } 
       } 
      } 

     } 
     else 
     { 
      if(dirPath.getName().endsWith(".txt")) 
      { 
       //do your processing here.... 
      } 
     } 

    } 

देखें कि यह मदद करता है या नहीं।

1

निर्देशिका के पथ में प्रवेश करने के लिए उपयोगकर्ता को एक टेक्स्ट बॉक्स प्रदान करें।

File userDir=new File("userEnteredDir"); 
File[] allfiles=useDir.listFiles(); 

दोहराएं allFiles .txt फिल्टर करने के लिए getExtension का उपयोग करके फ़ाइलें() विधि

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