Hallo,
ich schreibe mir grad ein Tool mit dem man Dateinamen bereinigen kann. Dazu lese ich Laufwerke und Ordner des PCs aus und stelle Sie in einem JTree dar.
Die Knoten des Trees werden mit einem eigenen Objekt belegt, welches ein File (das entsprechende in der Ordnerhierarchie) beinhaltet.
Nun soll auf Knopfdruck der Dateiname bereinigt werden. Das klappt soweit auch ganz gut, denn die Datei wird auf der Platt umbenannt. Allerdings würde ich auch gerne den Tree aktualisieren. Hier der entsprechende Quelltext:
In Zeile 16 wird die Datei auf der Platte korrekt geändert, allerdings ändert sich nicht die URI aus der File-Referenz.
Muss ich mich da selbst drum kümmern, dass sie geändert wird?
Gruß
ich schreibe mir grad ein Tool mit dem man Dateinamen bereinigen kann. Dazu lese ich Laufwerke und Ordner des PCs aus und stelle Sie in einem JTree dar.
Die Knoten des Trees werden mit einem eigenen Objekt belegt, welches ein File (das entsprechende in der Ordnerhierarchie) beinhaltet.
Nun soll auf Knopfdruck der Dateiname bereinigt werden. Das klappt soweit auch ganz gut, denn die Datei wird auf der Platt umbenannt. Allerdings würde ich auch gerne den Tree aktualisieren. Hier der entsprechende Quelltext:
Code:
public int editSelection() {
TreePath currentSel = this.data.getSelectionPath();
if (currentSel != null) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) currentSel.getLastPathComponent();
Object userO = node.getUserObject();
File f;
if (userO instanceof DirFile) {
DirFile dirFile = (DirFile) userO;
f = dirFile.getFile();
if (!f.isDirectory()) {
String oldName = f.getName();
String newName = f.getName().replace("_", " ");
String newPath = f.getAbsolutePath().replace(oldName, newName);
try {
File cleaned = new File (newPath);
if (f.renameTo(cleaned)){
//node.setUserObject(new DirFile (f));
this.data.repaint();
return Tree.FILE_CLEANED;
}else{
return Tree.ERROR_CLEANING_FILE;
}
}catch(SecurityException e) {
return Tree.ERROR_CLEANING_FILE;
}
}else {
File[] subFiles = f.listFiles();
for (File file : subFiles) {
if (!file.isDirectory()) {
// TODO
}
}
}
}
}
return Tree.NOTHING_HAPPENED;
}
Muss ich mich da selbst drum kümmern, dass sie geändert wird?
Gruß