È inoltre possibile utilizzare java.nio.file.Path per fare questo molto più facilmente. Il metodo java.nio.file.Path.starts con il metodo sembra gestire tutti i possibili casi.
Esempio:
private static void isChild(Path child, String parentText) {
Path parent = Paths.get(parentText).toAbsolutePath();
System.out.println(parentText + " = " + child.startsWith(parent));
}
public static void main(String[] args) {
Path child = Paths.get("/FolderA/FolderB/File").toAbsolutePath();
isChild(child, "/FolderA/FolderB/File");
isChild(child, "/FolderA/FolderB/F");
isChild(child, "/FolderA/FolderB");
isChild(child, "/FolderA/Folder");
isChild(child, "/FolderA");
isChild(child, "/Folder");
isChild(child, "/");
isChild(child, "");
}
uscite
/FolderA/FolderB/File = true
/FolderA/FolderB/F = false
/FolderA/FolderB = true
/FolderA/Folder = false
/FolderA = true
/Folder = false
/= true
= false
Se avete bisogno di più affidabilità è possibile utilizzare "toRealPath" invece di "toAbsolutePath".
fonte
2013-03-02 01:27:11
Fa questo esempio richiedere filesystem IO a tutti? – user2586917
Possibile duplicato di [Java: verifica se il percorso è padre di un file] (http://stackoverflow.com/questions/28698125/java-check-if-path-is-parent-of-a-file) – Suma
@Suma : La domanda che hai collegato è _duplicate_ di questo. – Jayan