मेरे पास यह कोड है जो एक निर्देशिका से सभी फाइलों को पढ़ता है।
File textFolder = new File("text_directory");
File [] texFiles = textFolder.listFiles( new FileFilter() {
public boolean accept( File file ) {
return file.getName().endsWith(".txt");
}
});
यह बहुत अच्छा काम करता है। यह सभी फाइलों के साथ सरणी को भरता है जो निर्देशिका "text_directory" से ".txt" के साथ समाप्त होता है।
मैं JAR फ़ाइल के भीतर इसी तरह एक निर्देशिका की सामग्री कैसे पढ़ सकता हूं ?
तो मैं वास्तव में क्या करना चाहता हूं, अपनी JAR फ़ाइल के अंदर सभी छवियों को सूचीबद्ध करने के लिए, इसलिए मैं उन्हें लोड कर सकता हूं:
ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
(यह काम करता है क्योंकि "CompanyLogo" "हार्डकोड" है लेकिन JAR फ़ाइल के अंदर छवियों की संख्या 10 से 200 चर लंबाई तक हो सकती है।)
संपादित करें
इसलिए मुझे लगता है कि मेरी मुख्य समस्या यह होगी: JAR फ़ाइल का नाम कैसे पता चलेगा जहाँ मेरा मुख्य वर्ग रहता है?
दी मैं इसे का उपयोग कर पढ़ सकता है java.util.Zip
।
मेरी संरचना इस प्रकार है:
वे जैसे हैं:
my.jar!/Main.class
my.jar!/Aux.class
my.jar!/Other.class
my.jar!/images/image01.png
my.jar!/images/image02a.png
my.jar!/images/imwge034.png
my.jar!/images/imagAe01q.png
my.jar!/META-INF/manifest
अभी मैं "चित्र / image01.png" उदाहरण के लिए लोड करने में सक्षम हूं:
ImageIO.read(this.getClass().getResource("images/image01.png));
लेकिन केवल इसलिए कि मुझे फ़ाइल का नाम पता है, बाकी के लिए मुझे उन्हें गतिशील रूप से लोड करना होगा।