# Dateinamen ändern



## manuche (25. Nov 2008)

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:

```
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;
	}
```
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ß


----------



## Verjigorm (25. Nov 2008)

Dein File f ist nach dem umbenennen nutzlos, da es nichtmehr auf die Datei refenziert, sondern quasi auf die "alte nichtmehr vorhandene Datei"
Danach hilft dir nur dein "cleaned", dort sollte die Referenz korrekt dargestellt werden.


----------



## manuche (25. Nov 2008)

Ok Danke... Bin eigentlich davon ausgegangen, dass dann automatisch auf die umbenannte Datei referenziert wird!
Mal knapp am Tehma vorbei: Kann man die TreeNodes ohne größeren Aufwand nach Ordner und Datei sortieren?


----------



## Verjigorm (25. Nov 2008)

manuche hat gesagt.:
			
		

> Ok Danke... Bin eigentlich davon ausgegangen, dass dann automatisch auf die umbenannte Datei referenziert wird!



Davon bin ich vor einigen Wochen auch ausgegangen, ist aber nicht so, wobei es doch praktisch ist, falls man mal was zurückbenennen möchte


----------

