3

我有一个java文件路径

/opt/test/myfolder/myinsidefolder/myfile.jar

我想将文件路径替换为此处的根路径将保持不变,但想将文件名从更改myfile.jarTest.xml

/opt/test/myfolder/myinsidefolder/Test.xml

我怎样才能在java中做到这一点有什么帮助?

4

5 回答 5

10

这是正确的方法:

File myfile = new File("/opt/.../myinsidefolder/myfile.jar");
File test = new File(myfile.getParent(), "Test.xml");

或者,如果您更喜欢仅使用字符串:

String f = "/opt/test/myfolder/myinsidefolder/myfile.jar";
f = new File(new File(f).getParent(), "Test.xml").getAbsolutePath();

System.out.println(f); // /opt/test/myfolder/myinsidefolder/Test.xml
于 2012-06-08T12:11:34.263 回答
6

查看Java Commons IO FilenameUtils类。

它有许多方法可以可靠地在不同平台上反汇编和操作文件名(对于许多其他有用的实用程序也值得一看)。

于 2012-06-08T12:11:26.430 回答
2
File f = new File("/opt/test/myfolder/myinsidefolder/myfile.jar");
File path = f.getParentFile();
File xml = new File(path, "Test.xml");
于 2012-06-08T12:12:44.530 回答
2

仅使用 JRE 可用类File的更直接方法:

String parentPath = new File("/opt/test/myfolder/myinsidefolder/myfile.jar").getParent();
new File(parentPath, "Test.xml");
于 2012-06-08T13:02:57.120 回答
0

要重命名文件,您可以使用 java.nio.file.Files 中的 Files.move

File oldFile=new File("/opt/test/myfolder/myinsidefolder/myfile.jar");
File newFile=new File(oldFile.getParent+"/"+"Test.xml");
try
{
  Files.move(oldFile.toPath(),newFile.toPath());
}
catch (IOException ex)
{
  System.err.println("File was not renamed!");
}
于 2017-04-01T10:40:41.217 回答