2 つの絶対パスから相対パスを構築するという課題について考えてみましょう。たとえば、次のような絶対パスがあるとします。
/var/data/stuff/xyz.dat /var/data
2 番目のパスをベースとした、必要な相対パスは次のとおりです。
./stuff/xyz.dat
これを Java で効果的に実現するにはどうすればよいでしょうか?
この問題を解決するには、Java の URI クラスの利用を検討してください。 URI には、指定された絶対パスに基づいて相対パスを作成するプロセスを自動化するメソッド relativize が用意されています。
String path = "/var/data/stuff/xyz.dat"; String base = "/var/data"; String relative = new File(base).toURI().relativize(new File(path).toURI()).getPath(); // relative == "stuff/xyz.dat"
Java バージョンが 1.7 または後で、で利用可能な相対化メソッドを活用することもできます。 java.nio.file.Path.
String path = "/var/data/stuff/xyz.dat"; String base = "/var/data"; Path basePath = Paths.get(base); Path absPath = Paths.get(path); Path relativePath = basePath.relativize(absPath); // relativePath == Paths.get("stuff/xyz.dat")
以上がJava で 2 つの絶対パスから相対パスを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。