English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Fila (Fila)

Conjunto Java Map

Conjunto Java Set

Java Entrada e Saída (I/O)

Reader Java/Writer

Outros tópicos Java

Programa Java obtendo caminho relativo a partir de dois caminhos absolutos

   大全 de exemplos Java

Neste exemplo, vamos aprender a usar o método String, a classe URI e o pacote java.nio.file para obter o caminho relativo de dois caminhos absolutos no Java.

Exemplo1Obter caminho relativo a partir de dois caminhos absolutos usando a classe URI

import java.io.File;
import java.net.URI;
class Main {}}
  public static void main(String[] args) {
    try {
      //Dois caminhos absolutos
      File absolutePath1 = new File("C:\\Users\\Desktop\\w3codebox\Java\Time.java");
      System.out.println("Caminho absoluto"1: " + absolutePath1);
      File absolutePath2 = new File("C:\\Users\\Desktop");
      System.out.println("Caminho absoluto"2: " + absolutePath2);
      //Converter caminho absoluto para URI
      URI path1 = absolutePath1.toURI();
      URI path2 = absolutePath2.toURI();
      //Criar caminho relativo a partir de dois caminhos
      URI relativePath = path2.relativize(path)1);
      //Converter URI para string
      String path = relativePath.getPath();
      System.out.println("Caminho relativo: " + path);
    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Resultado de saída

Caminho absoluto1: C:\Users\Desktop\w3codebox\Java\Time.java
Caminho absoluto2: C:\Users\Desktop
Caminho relativo: w3codebox/Java/Time.java

No exemplo acima, temos dois chamados absolutePath1 e absolutePath2 caminho absoluto. Já usamos a classe URI para converter o caminho absoluto para o caminho relativo.

  • toURI() - Converter o objeto File paraUri

  • relativize() - Extrair o caminho relativo comparando os dois caminhos absolutos

  • getPath() - Converter URI para string

Exemplo2Usar o método String para obter o caminho relativo a partir de dois caminhos absolutos

import java.io.File;
class Main {}}
  public static void main(String[] args) {
    //Criar objeto de arquivo
    File file1 = new File("C:\\Users\\Desktop\\w3codebox\Java\Time.java");
    File file2 = new File("C:\\Users\\Desktop");
    // Converter o objeto arquivo para uma string
    String absolutePath1 = file1.toString();
    System.out.println("Caminho absoluto"1: " + absolutePath1);
    String absolutePath2 = file2.toString();
    System.out.println("Caminho absoluto"2: " + absolutePath2);
    //Obter caminho relativo
    String relativePath = absolutePath1.substring(absolutePath2.length());
    System.out.println("Caminho absoluto: " + relativePath);
  }
}

Resultado de saída

Caminho absoluto1: C:\Users\Desktop\w3codebox\Java\Time.java
Caminho absoluto2: C:\Users\Desktop
Caminho absoluto: \w3codebox\Java\Time.java

No exemplo acima, convertimos o caminho do arquivo para uma string. Observe a expressão

absolutePath1.substring(absolutePath2.length())

Aqui, o método substring () retorna absolutePath1parte, começando pelo índice igual a absolutePath2com início no comprimento. Isso é, a partir de absolutePath1remover absolutePath2 representa a string.

Para obter mais informações sobre como o substring funciona, acesseJava String substring().

Exemplo3Usar o pacote java.nio.file para obter o caminho relativo a partir de dois caminhos absolutos

import java.nio.file.Path;
import java.nio.file.Paths;
class Main {}}
  public static void main(String[] args) {
    //Criar objeto de arquivo
    Path absolutePath1 = Paths.get("C:\\Users\\Desktop\\w3codebox\Java\Time.java");
    Path absolutePath2 = Paths.get("C:\\Users\\Desktop");
    //Converter caminho absoluto para caminho relativo
    Path relativePath = absolutePath2.relativize(absolutePath1);
    System.out.println("Caminho relativo: " + relativePath);
  }
}

Resultado de saída

Caminho relativo: w3codebox\Java\Time.java

No exemplo acima, usamos o método relativize() da interface Path para obter o caminho relativo de dois caminhos absolutos.

大全 de exemplos Java