我對JDK7中所有這些新的文件I/O類感到困惑。如何在JDK7中重命名(不移動)文件?
比方說,我有一個Path
並且想要重命名文件,它代表。
如果預計再次出現Path
,我如何指定新名稱?
Path p = /* path to /home/me/file123 */;
Path name = p.getName(); /* gives me file123 */
name.moveTo(/* what now? */); /* how to rename file123 to file456? */
注:爲什麼我需要JDK7?處理符號鏈接!
問題是:我必須用文件來完成,它的名稱和位置在運行時是已知的。所以,我需要的是一個安全方法(沒有特殊的副作用)來創建一個新名稱 - 路徑的一些舊名稱路徑。
Path newName(Path oldName, String newNameString){
/* magic */
}
所以我可以創建一個新的'路徑'?是否有比以下更簡單的路徑:Path newName = Paths.get(name.getParent()。toString()+ pathSeparator +「newName」); ? – 2009-12-16 12:54:09
是的,現在的問題是:如何以安全的方式創建這樣的路徑,以便沒有特殊的情況會導致它失敗。 – 2009-12-16 12:59:36
我可以嘗試描述如何採用原始路徑,取消名稱'file123'來連接'file456',並調用'name.moveTo()',但由於我並不真正瞭解Java,因此我會猜測。我** **肯定**的是,如果只有文件名不同,a * move *就會變成*重命名*。 – pavium 2009-12-16 13:02:43