java 親フォルダの直下にパスを結合する

java 親フォルダの直下にパスを結合する

javaで、親フォルダの直下にパスを結合する手順を記述してます。

環境

  • OS windows11 home
  • java 17.0.2

手順

親フォルダの直下にパスを結合するには、「resolve」を使用します。

パス.resolve(結合するパス);  

実際に、使用してみます。

import java.nio.file.Path;

public class App {
    public static void main(String[] args) throws Exception {
          
        // パスに変換
        Path path1 = Path.of("C:/foo/hoge/sample.txt");        
        Path path2 = Path.of("/foo/sample.txt");        
        Path path3 = Path.of("sample.txt");       
        Path path4 = Path.of("/java/hello.java");
        
        System.out.println(path1.resolveSibling(path4)); // C:\java\hello.java    
        System.out.println(path2.resolveSibling(path4)); // \java\hello.java  
        System.out.println(path3.resolveSibling(path4)); // \java\hello.java      

    }
}

直下にパスが結合されていることが確認できます。

絶対パスを結合

絶対パスを結合するパスと指定した場合は、絶対パスが優先されます。

import java.nio.file.Path;

public class App {
    public static void main(String[] args) throws Exception {
          
        // パスに変換
        Path path1 = Path.of("C:/foo/hoge/sample.txt");        
        Path path2 = Path.of("/foo/sample.txt");        
        Path path3 = Path.of("sample.txt");       
        Path path4 = Path.of("C:/java/hello.java");
        
        System.out.println(path1.resolveSibling(path4)); // C:\java\hello.java    
        System.out.println(path2.resolveSibling(path4)); // C:\java\hello.java  
        System.out.println(path3.resolveSibling(path4)); // C:\java\hello.java        

    }
}