更改File对象中最深目录的名称

时间:2011-01-12 07:07:55

标签: java

我在Java中有File对象,它是一个目录路径:

C:\foo\foo\bar

...我想将其更改为:

C:\foo\foo\newname

我不是指重命名实际目录,而是简单地修改File对象中的路径。有人能告诉我如何做到这一点吗?我是否必须使用字符串函数,或者是否有一些我可以使用的内置Java函数?

感谢。

6 个答案:

答案 0 :(得分:2)

您可以从另一个文件构造一个文件并获取文件的父目录,并将它们组合在一起:

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

答案 1 :(得分:1)

在java中没有这样的方法来改变File对象的路径,但是你可以使用getPath()或getAbsolutePath()来获取文件路径。我认为在该路径上创建一个新文件就可以了。

答案 2 :(得分:0)

我认为你只能使用新路径创建一个新的File对象:

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

它会对您的代码产生任何副作用吗?

答案 3 :(得分: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"));
  }
}

希望这有帮助。

答案 4 :(得分:0)

您可以使用File对象的字符串表示形式并搜索last / with indexOf(),然后更改它后面的值并创建一个新的File对象。

答案 5 :(得分: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);