Ciao a tutti, inanzi tutto grazie per la vostra pazienza e la vostra attenzione, volevo chiedere come si fa a ricercare un File in tutto il PC, per il momento sono solo riuscita a cercarlo nella Cartella del progetto, ho guardato vari esempi su internet e sul mio libro ma non riesco a capire come funziona.
Ad esempio ho trovato questo in giro
public static String scansionaDirectory(File dir) throws IOException {
String result = "";
File[] elementi = dir.listFiles();
if (elementi == null) {
return null;
}
for (File file : elementi) {
if (file.isDirectory()) {
result += scansionaDirectory(file); //ricorsione
} else {
result += file + "\n";
}
}
return result;
}
Ma non riesco a capirlo!! Io al momento ho scritto questo (So che è scritto davvero male però funziona al momento mi va bene così)
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* Ricerca di un File dato il nome
*/
public class Gui implements ActionListener{
private JFrame f;
public TextField text;
public TextField path;
private JButton cerca;
private JPanel p;
private JLabel l;
public Gui(){
f = new JFrame("Cerca File");
f.setSize(600,100); //Dimensione
f.setLocation(400,200); //Posizione
f.setResizable(false); //Non si può ridimensionare
f.addWindowListener(new GestoreFinestra()); //Ascoltatore eventi
text = new TextField();
path = new TextField();
path.setEditable(false);
cerca = new JButton("Cerca");
cerca.addActionListener(this);
p = new JPanel();
p.setLayout(new GridLayout(1,2));
p.add(text);
p.add(cerca);
l = new JLabel("Path:");
//Aggiungo al Frame
f.add(p, "North");
f.add(l, "Center");
f.add(path, "South");
f.setVisible(true);
}
// public static void main(String args[]) throws FileNotFoundException {
// FileListing file = new FileListing();
// file.scansionaDirectory(new File("E:\\Dir"));
// }
// }
/**
* EVENTI ------------------------------------------------------------------->
*/
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == cerca){
GuiEr g;
String nomeFile;
String pathMio;
File mioFile;
FileWriter scrittore;
nomeFile = text.getText();
mioFile = new File(nomeFile);
//Restituisce Path
if(mioFile.exists() == true){
pathMio = mioFile.getAbsolutePath(); // e il path assoluto
path.setText(pathMio + "\n");
//Salva il File
mioFile = new File("Ricerca.txt");
try {
mioFile.createNewFile(); // creo un nuovo file
scrittore = new FileWriter(mioFile); // imposto lo scrittore del file
scrittore.write((path.getText()));
scrittore.close(); // chiudo il file
} catch (IOException f) {
System.out.println("Errore: "+f);
}
}
if(mioFile.exists() == false){
new GuiEr();
}
//
// //Apri il file
// String[] commands = {"cmd", "/c", "start", nomeFile};
// try {
// Runtime.getRuntime().exec(commands);
// } catch (IOException e1) {
// e1.printStackTrace();
// }
}
}
/**
* Main --------------------------------------------------------------------->
*/
public static void main(String[] args) {
new Gui();
}
}