renameTo funktioniert nicht

  • Themenstarter Themenstarter lattensepp
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
L

lattensepp

Gast
Hallo Leute,
hab da ein Problem. Hab ein Knowledge-Base-Programm zusammen gebaut. Funktioniert alles recht gut, allerdings habe ich meine Probleme mit der renameTo-Methode aus der File-Klasse.

Code:
File newDir = new File("anderer Path");
File oldDir = new File("irgend ein Path");

boolean b=oldDir.rename(newDir);

Sieht alles sehr einfach aus und es funktioniert auch.
Allerdings funktioniert es nicht wenn hinter oldDir eine komplexe Verzeichnisstruktur steht und ich im Explorer von Windows in der Verzeichnisstruktur von oldDir irgend ein Verzeichnis markiert habe, ohne Änderungen vorzunehmen oder sonst was. Es wird nicht in das neue Verzeichnis geschrieben, noch nicht mal wird das neue Verzeichnis angelegt.

Kann mir da jemand helfen. Vielleicht gibt es ja auch andere Möglichkeiten eine komplexe Verzeichnisstruktur zu verschieben

Danke
 
"rename" ist wohl Schreibfehler für "renameTo"
Die API Doku sagt, daß der Befehl naturgemäss stark Plattformabhängig ist
und nicht immer funktionieren wird. Der Rückgabewert sollte überprüft werden
um sicherzustellen, daß der rename erfolgreich war.
 
Erstmal danke für die Antwort,
"rename" ist natürlich ein Schreibfehler, ich meine renameTo.

Der Rückgabewert liefert auch false wenn ich in der komplexen Verzeichnisstruktur von oldDir ein Verzeichnis im Explorer markiert habe. Ich nutze Windows XP.
Ich möchte die komplette Verzeichnisstruktur in ein anderes Verzeichnis verschieben, darin können auch mehrere "große" Dateien enthalten sein, 5-10 mb. Wenn ich Streams anwende und deren read- and write-Methoden oder Filechannel mit dessen Methode transferFrom() arbeite, würde die Performanz sehr darunter leiden. Gibt es keine Möglichkeit dem Explorer beim XP die Markierung "wegzunehmen", um die Verzeichnisstruktur zu verschieben. Oder gibt es andere Möglichkeiten?
 
Hallo

Na da hab' ich ja 'nen passenden Thread gefunden...

Ich habe selbiges Problem mit renameTo und Windows XP. Ein und dieselbe Klasse mit einem Codeschnipsel wie dem obigen läuft bei korrekt gesetzten Zugriffsrechten unter z.B. Solaris perfekt. Unter XP reicht nicht einmal der "Vollzugriff" für "jeder". Die Verzeichnistiefe ist bei meinen Beispielen nie höher als 3 gewesen. Wenn ich mir mal die Eigenschaften der relevanten Verzeichnisse im XP-Explorer ansehe fällt mir stets ein orangenes Quadrat vor dem Schreibschutz-Flag auf, welches ich auch nicht weg bekomme. Weis da zufällig jemand Rat?

cu Spacerat
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben