Ich denke nicht, dass es sehr häufig ist, aber manchmal möchten Sie von einem Pfad ausgehen und den relativen Pfad eines anderen finden. In Java7 oder höher denke ich, dass java.nio.file.Path
häufig für Dateioperationen (ursprüngliche Pfadoperationen) verwendet wird, aber wenn Sie einen relativen Pfad finden möchten, während Sie __Path
verwenden Verwenden Sie Path :: relativize
für. __ __
JavaDoc befindet sich unter der folgenden URL: https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Path.html#relativize-java.nio.file.Path-
Es ist etwas schwierig zu verstehen, wie die API verwendet wird, aber geben Sie den Pfad an, für den Sie den relativen Pfad als Argument finden möchten, und den Pfad, den Sie als Ausgangspunkt für den Empfänger verwenden möchten.
Das folgende Beispiel zeigt den relativen Pfad der Datei "/ a / b / c / Verzeichnis / e / Datei" ausgehend vom Verzeichnis "/ a / b / c / Verzeichnis". Es wird angenommen, dass die Datei "/ a / b / c / Verzeichnis / e / Datei" im Verzeichnis "/ a / b / c / Verzeichnis" gespeichert ist.
package main;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
var directory = Paths.get("/a/b/c/directory");
var file = Paths.get("/a/b/c/directory/e/file");
System.out.println(directory.relativize(file)); // => e\file
}
}
Recommended Posts