मैं एक निर्देशिका में एक विशिष्ट विस्तार के साथ फ़ाइलों की एक सूची प्राप्त करना चाहूंगा। एपीआई (जावा 6) में, मुझे एक विधि दिखाई देती है File.listFiles(FileFilter)
जो ऐसा करेगी।
चूंकि मुझे एक विशिष्ट विस्तार की आवश्यकता है, इसलिए मैंने एक बनाया FileNameExtensionFilter
। हालाँकि मुझे इसके listFiles
साथ उपयोग करने पर एक संकलन त्रुटि मिलती है । मैंने यह मान लिया कि कब से FileNameExtensionFilter implements FileFilter
, मुझे यह करने में सक्षम होना चाहिए। कोड इस प्रकार है:
FileNameExtensionFilter filter = new FileNameExtensionFilter("text only","txt");
String dir = "/users/blah/dirname";
File f[] = (new File(dir)).listFiles(filter);
अंतिम पंक्ति एक संकलन त्रुटि दिखाती है:
विधि सूची प्रकार (FileNameFilter) प्रकार में फ़ाइल FileNameExtensionFilter प्रकार के तर्कों के लिए लागू नहीं होती है
मैं उपयोग करने की कोशिश कर रहा हूं listFiles(FileFilter)
, नहीं listFiles(FileNameFilter)
। संकलक इसे क्यों नहीं पहचानता है?
यह काम करता है अगर मैं अपना खुद का एक्सटेंशन फ़िल्टर लिखता हूं FileFilter
। मैं FileNameExtensionFilter
अपने लिखने के बजाय उपयोग करना चाहूंगा । मैं क्या गलत कर रहा हूं?