renameTo alternative?

mimoma

Mitglied
Hi leute,

ich habe ein großes Problem mit renameTo das ich nicht verstehe. Ich hoffe Ihr könnt mir ein wenig weiter helfen. Oder was mir wast schon lieber wäre einen Tipp geben wie ich mit anderen Mitteln ans Ziel komme.

Java:
dpath="P:\\Ordner\\Ordner\\";
fileName="irgendwas.txt"

System.out.println(new File(dpath+""+fileName+"_t").exists());
// liefert false

boolean test = new File(dpath+""+fileName).renameTo(new File(dpath+""+fileName+"_t"));
System.out.println(test);
// ebenfalls false

ABER

Java:
String fdc = "P:\\Ordner\\Ordner\\irgendwas.txt";
boolean test2 = new File(fdc).exists();
System.out.println(test2);
// gibt true aus (dateiname lässt sich auch mit renameTo ändern)

Ich hoffe das Ihr mir helfen könnt. Danke im vorraus.
 
Kannst du dein großes Problem nochmal mit eigenen Worten zusammenfassen anstatt nur den scheinbar fehlerhaften Quellcode zu posten, vielleicht fällt es dir dann auf. 😉
 
Ich möchte eine Datei ("irgendwas.txt") die unter dem Pfad "P:\Ordner\Ordner\" zu finden ist in "irgendwas.txt_t" umbennenen. Wieso ist der Code fehlerhaft? (hab das eben so für das Forum zusammen geschrieben um das Problem auf das wesentliche zu reduzieren)
 
ist dein problem, das es mit einem zusammengebauten string nicht funktioniert, mit einem fertigen aber schon?
sehe dein problem nicht so richtig

Java:
        boolean foo = new File("e:\\mtg.sql").renameTo(new File("e:\\mtg_org.sql"));
        System.out.println(foo); // true
 
Java:
dpath="P:\\Ordner\\Ordner\\";
fileName="irgendwas.txt"

System.out.println(new File(dpath, fileName+"_t").exists());

Bzgl. deines Quellcodes ganz oben: Du brauchst keinen leeren String anfügen. Und der
Code:
new File(String,String)
-Konstruktor ist auch schön komfortabel.
 
Java:
public class testrename {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String dpath="P:\\Desktop\\receives\\";
		String fileName="irgendwas.txt";
		 
		System.out.println(new File(dpath,fileName+"_t").exists());
		// liefert false
		 
		boolean test = new File(dpath,fileName).renameTo(new File(dpath,fileName+"_t"));
		System.out.println(test);

	}

}

Hab das jetzt so ausprobiert. Funktioniert leider trotzdem nicht.

@bone2: genau jedenfalls scheint es so.
 
Java:
    public static void main(String[] args){
        String dpath="e:\\temp\\icctemp\\";
        String fileName="irgendwas.txt";

        System.out.println(new File(dpath,fileName+"_t").exists()); // false
        System.out.println(new File(dpath,fileName).exists()); // true

        boolean test = new File(dpath,fileName).renameTo(new File(dpath,fileName+"_t"));
        System.out.println(test); // true
    }
hm
 
Probier mal
Java:
java.nio.file.Files.move( dpath + fileName, dpath + fileName+"_t" )

mit
Java:
java.nio.file.Files.move( dpath + fileName, dpath + fileName+"_t", StandardCopyOption.REPLACE_EXISTING )

wird die alte Datei überschrieben (wenn sie schon existiert).
Oder eleganter:

Java:
 Path path = FileSystems.getDefault().getPath(dpath,fileName);
 Files.move(path, path.resolveSibling(fileName+"_t"));
 
Zuletzt bearbeitet:

Zurück
Oben