Buongiorno a tutti, torno a scrivervi per un dubbio che mi perseguita. Ho realizzato un'applicazione che all'avvio deve leggermi da una directory "templates" i nomi di alcuni files .html ed inserirli in un jComboBox. Quando poi vado a selezionare un item del jComboBox dovrebbe leggermi il file selezionato ed incollarmi il template specifico in una jTextArea.
Ho notato che facendo così:
public void loadDirectory() {
File directory;
String[] files;
directory = new File(name);
files = null;
try {
files = directory.list();
} catch(SecurityException ex) {
JOptionPane.showMessageDialog(null, "Directory non trovata!", "Errore", JOptionPane.ERROR_MESSAGE);
}
for(String file : files) {
if(file.endsWith(".html")) {
list.addItem(file.substring(0, (file.length() - 5)));
}
}
}
riesco a leggere i files dalla directory "templates" però si trova all'interno della cartella contenente il progetto. Per farvi capire meglio qui:
http://puu.sh/ofmZu/edc197c95e.pn
Quando poi tento di leggere un template:
public String loadTemplate() {
BufferedReader br;
try {
br = new BufferedReader(new FileReader(name));
String line = "";
while(line != null) {
line = br.readLine();
if(line != null) {
content += line + "\n";
}
}
} catch (FileNotFoundException ex) {
JOptionPane.showMessageDialog(null, "File non trovato!", "Errore", JOptionPane.ERROR_MESSAGE);
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, "Errore durante la lettura del file!", "Errore", JOptionPane.ERROR_MESSAGE);
}
return content;
}
mi dà errore perché si aspetta che il file sia contenuto nella cartella Dist, praticamente dove viene generato il file .jar.
Come potrei risolvere questo problema?
Ps: aggiungo infine che dovrei distribuire l'applicazione ad altre persone. Ho letto che posso usare Excelsior Jet, quindi vorrei far in modo di trovare un modo grazie al quale se esiste una cartella "templates" all'interno della cartella di installazione, possa riuscire a leggere i files.