2011-07-12 20 views
5

क्या जावा में किसी विशिष्ट नाम से शुरू होने वाली निर्देशिका में कुछ टेक्स्ट फ़ाइलों को खोलने का कोई तरीका है?जावा में विशिष्ट उपसर्ग के साथ शुरू होने वाली सभी फ़ाइलों को कैसे खोलें?

मेरी निर्देशिका में उदाहरण के लिए मैं निम्न फ़ाइलें हैं:

Ab-01.txt 
Ab-02.txt 
Ab-03.txt 
Ab-04.txt 
SomethingElse.txt 
NotRelated.txt 
तो अब

मेरी जावा कोड में मैं केवल उन फ़ाइलों है कि के साथ "Ab-"

उत्तर

29

हां। File.listFiles(FilenameFilter) का उपयोग करें:

एक उदाहरण के रूप:

File dir = new File("/path/to/directory"); 
File[] foundFiles = dir.listFiles(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.startsWith("Ab-"); 
    } 
}); 

for (File file : foundFiles) { 
    // Process file 
}  
बेशक

, accept() विधि जो कुछ भी आप की जरूरत है हालत बदल जाते हैं। तो शायद name.startsWith("Ab-") && name.endsWith(".txt")

4

http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#listFiles(java.io.FilenameFilter) उपयोग इस शुरू होता खोलना चाहते हैं मूल फ़ोल्डर पर विधि और फ़ाइल नाम फ़ाइल लागू करता है जैसे:

 
boolean accept(File dir, String name){ 
    return name.matches("AB-\n{2}.*") 
} 
+1

वाह, 1.4 डॉक्स को जोड़ने! – Qwerky

+0

http://download.oracle.com/javase/6/docs/api/java/io/File.html#listFiles(java.io.FilenameFilter) वाह यह जावा 6 पर भी काम करता है (मैंने Google पर 'फ़ाइल जावा' लिखा और 1.4 पहला परिणाम था: पी) – rascio

+0

मुझे नफरत है कि कैसे Google कभी-कभी 1.6 डॉक्स के मुकाबले परिणामों में 1.4 डॉक्स को उच्चतर रखता है। गुगलिंग 'फाइल जावाडोक 6' सबसे अच्छा शर्त लगता है। – Qwerky

0

कोई जादू रास्ता नहीं है। आपको नामों की जांच करने वाली निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करना चाहिए, और पैटर्न के साथ फ़ाइलों को पढ़ना चाहिए। और प्रत्येक निर्देशिका को दोबारा जांचें।

1

अपनी निर्देशिका का प्रतिनिधित्व करने वाला java.io.File बनाएं, फिर listFiles method का उपयोग करें जो FileNameFilter लेता है। आप इसे बता सकते हैं कि आप किस पैटर्न से मिलान करना चाहते हैं, जैसे name.startsWith ("Ab-")।

1
File files[] = directory.listFiles(); 
for (File f : files) { 
    If(//filename matches what you want) 
    { 
     // do whatever you want with each File f 
    } 
} 

काम करना चाहिए

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

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