Erste Schritte Datei umbennen bzw verschieben klappt nicht

GianaSisters

Bekanntes Mitglied
Guten morgen zusammen,

leider funktioniert das Verschieben von Dateien bei mir nicht so richtig. Hab schon viel rumgegoogelt aber leider ist das da immer nur mit "einfachen" Dateinamen beschrieben. Sicherlich wissen da sehr viele bescheid.

Ich möchte eine Datei in ein neues Verzeichnis verschieben

aktDateiname ist z.b. "C:\NetBeansPro\CSV\GP414P1X.csv"
aktDateinamekurz ist dann: "GP414P1X.csv"

Für Tests wollte ich einfach mal ein .bak dranhängen, selbst das ging schon nicht.
Weiß mir jemand zu helfen?
lg, Giana

Java:
  public void dateiVerschieben(String aktDateiname, String aktDateinamekurz) {
        
        // Dateien vom Pfad ins Komplett reinschieben
        System.out.println("Datei verschieben");

      try {
          File quellDatei = new File(aktDateiname);
          File zielDatei = new File(aktDateiname+".bak");
          quellDatei.renameTo(zielDatei);
      } catch (Exception e) {
          e.printStackTrace();
      }
      

    }
 
Vielleicht wär die Error Message noch interessant 😉 Warscheinlich hast du einfach kein Recht, die Datei zu verschieben. Oder die Datei wurde nicht gefunden. Oder...
 
Prüfe vorher, ob die Datei existiert bzw. gib einfach mal
Code:
System.out.println(quellDatei.exists());
aus.
Eventuell ist die Datei ja noch von einem anderen Prozess geöffnet.
 
Vielen Dank für die Hilfen.
Erstmal muss ich sagen, dass ich natürlich schreibzugriff drauf habe und es KEINE Fehlermeldung gibt - es passiert einfach nichts obwohl er in die Methode reingeht.
Das Ausgeben von
Java:
System.out.println(quellDatei.exists());
führt zu einem True... Solang ich das Programm offen habe kann ich besagte CSV Datei nicht löschen oder umbennen. Vermutlich muss man das File-Objekt vorher zerstört haben bevor man es löscht oder wie ?
Vielen Dank schonmal 🙂
 
ein File-Objekt stört nicht, schon eher wenn du irgendwelche Streams offen hast, close() nicht vergessen,

sofern dein Programm nicht nur aus einer main-Methode besteht die diese Methode aufruft (testen!),
ist nun stark im Restprogramm ein Fehler zu vermuten
 
Vielen Dank, es lag daran wie es SlataB vermutet hatte, dass ich die Streams nicht geschlossen hatte... Funktioniert nun alles bestens. Danke !!!!
 

Neue Themen


Zurück
Oben