3

私はJavaファイルパスを持っています

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

ファイル パスをここに置き換えたい ルート パスは同じままですが、ファイル名を から に変更しmyfile.jarたいTest.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

JRE で利用可能なクラスFileのみを使用する、より直接的なアプローチ:

String parentPath = new File("/opt/test/myfolder/myinsidefolder/myfile.jar").getParent();
new File(parentPath, "Test.xml");
于 2012-06-08T13:02:57.120 に答える
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 に答える
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 に答える