2011-01-12 17 views
0

Ich habe File-Objekt in Java, die ein Verzeichnispfad ist:in einem File-Objekt

C:\foo\foo\bar 

... und ich möchte dies ändern:

C:\foo\foo\newname 

Ich meine nicht Umbenennen des tatsächlichen Verzeichnisses, sondern einfach den Pfad im Dateiobjekt ändern. Kann mir jemand zeigen, wie ich das machen kann? Muss ich dafür String-Funktionen verwenden oder gibt es eine eingebaute Java-Funktion, die ich verwenden kann?

Danke.

Antwort

2

Sie können eine Datei von einem anderen Konstrukt und das übergeordnete Verzeichnis einer Datei erhalten, diese Kombination:

File orig = new File("C:\\foo\\foo\\bar"); 
File other = new File(orig.getParentFile(), "newname"); 
0

Ich glaube, Sie nur ein neues File Objekt mit dem neuen Pfad erstellen:

File f2 = new File("C:\\foo\\foo\\newname") 

Macht es einen Nebeneffekt auf Ihrem Code machen?

0

Versuchen folgende:

import java.io.File; 
public class MainClass { 
    public static void main(String[] a) { 
    File file = new File("c:\\foo\\foo\\bar"); 
    file.renameTo(new File("c:\\foo\\foo\\newname")); 
    } 
} 

Hoffnung, das hilft.

+0

Er möchte nicht, dass sich der tatsächliche Name der Datei ändert. – Tom

0

Sie können die String-Repräsentation des File-Objekts verwenden und nach dem letzten/mit indexOf() suchen, dann ändern Sie den Wert danach und erstellen ein neues File-Objekt.

+1

Verwenden Sie File.separatorChar nicht/though. – Tom

+0

Ja, du hast recht! – Tobias

0

Ich denke, man zu so etwas wie dieses benötigen.

String sourcePath = "C:\\foo\\foo\\bar"; 
String newName = "newname"; 
File source = new File(sourcePath); 
File dest = new File(source.getParent() + File.separator + newName); 
source.renameTo(dest); 
1

Es gibt keine solche Methode in Java, den Pfad für das File-Objekt ändert, jedoch können Sie den Dateipfad mit getPath() oder getAbsolutePath() erhalten. Ich denke, das Erstellen einer neuen Datei auf diesem Pfad würde ausreichen.

Verwandte Themen