2011-01-12 109 views
0

我在Java文件對象,它是一個目錄路徑:在一個文件對象改變最深目錄的名稱

C:\foo\foo\bar 

...我想這個更改爲:

C:\foo\foo\newname 

我不是說重命名實際的目錄,而是簡單地修改File對象中的路徑。有人能告訴我我該如何做到這一點?我是否必須爲此使用字符串函數,還是有一些內置的Java函數可以使用?

謝謝。

回答

2

您可以構建從另一個文件和獲取文件的父目錄,結合這些:

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

我想你只能創建一個新的File對象的新路徑:

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

它使你的代碼的任何副作用?

0

嘗試以下操作:

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")); 
    } 
} 

希望這有助於。

+0

他不希望文件的實際名稱改變。 – Tom 2011-01-12 07:25:48

0

您可以使用File對象的字符串表示並搜索最後一個/ with indexOf(),然後更改它後面的值並創建一個新的File對象。

+1

不使用File.separatorChar。 – Tom 2011-01-12 07:27:49

0

我猜你需要這樣的事情。

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

有沒有在java中這樣的方法,對於文件對象改變路徑,但是你可以得到的getPath()或getAbsolutePath()的文件路徑。我認爲在這條路上創建一個新文件就行了。