古い質問が、あらかじめ1:あなたが同様のアプローチを持つことができScalaで
public boolean myCheck(File maybeChild, File possibleParent) {
if (requestedFile.isAbsolute) {
return possibleParent.resolve(maybeChild).normalize().toAbsolutePath.startsWith(possibleParent.normalize().toAbsolutePath)
} else {
return maybeChild.normalize().toAbsolutePath.startsWith(possibleParent.normalize().toAbsolutePath)
}
}
:私は、最も簡単な解決策は、このようなものだと思います。7解決策:完全性については
public boolean startsWith(String possibleRoot, String possibleChildOrSame) {
String[] possiblePath = new File(possibleRoot).getAbsolutePath().replace('\\', '/').split("/");
String[] possibleChildOrSamePath = new File(possibleChildOrSame).getAbsolutePath().replace('\\', '/').split("/");
if (possibleChildOrSamePath.length < possiblePath.length) {
return false;
}
// not ignoring case
for (int i = 0; i < possiblePath.length; i++) {
if (!possiblePath[i].equals(possibleChildOrSamePath[i])) {
return false;
}
}
return true;
}
のJava 1.7以降解決策:
public boolean startsWith(String possibleRoot, String possibleChildOrSame) {
Path p1 = Paths.get(possibleChildOrSame).toAbsolutePath();
Path p2 = Paths.get(possibleRoot).toAbsolutePath();
return p1.startsWith(p2);
}
この例では、すべてのファイルシステムのIOを必要としていますか? – user2586917
[Java:パスがファイルの親であるかどうかをチェックする]の可能な複製(http://stackoverflow.com/questions/28698125/java-check-if-path-is-parent-of-a-file) – Suma
@Sumaあなたがリンクしている質問はこの_duplicate_です。 – Jayan