私はJavaファイルパスを持っています
/opt/test/myfolder/myinsidefolder/myfile.jar
ファイル パスをここに置き換えたい ルート パスは同じままですが、ファイル名を から に変更しmyfile.jar
たいTest.xml
/opt/test/myfolder/myinsidefolder/Test.xml
Javaでこれを行うにはどうすればよいですか?
私はJavaファイルパスを持っています
/opt/test/myfolder/myinsidefolder/myfile.jar
ファイル パスをここに置き換えたい ルート パスは同じままですが、ファイル名を から に変更しmyfile.jar
たいTest.xml
/opt/test/myfolder/myinsidefolder/Test.xml
Javaでこれを行うにはどうすればよいですか?
これはそれを行う適切な方法です:
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
Java Commons IO FilenameUtilsクラスを確認してください。
これには、さまざまなプラットフォーム間でファイル名を確実に逆アセンブルおよび操作するための多数の方法があります (他の多くの便利なユーティリティについても参照する価値があります)。
JRE で利用可能なクラスFileのみを使用する、より直接的なアプローチ:
String parentPath = new File("/opt/test/myfolder/myinsidefolder/myfile.jar").getParent();
new File(parentPath, "Test.xml");
File f = new File("/opt/test/myfolder/myinsidefolder/myfile.jar");
File path = f.getParentFile();
File xml = new File(path, "Test.xml");
ファイルの名前を変更するには、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!");
}