Ответ 1
Это в основном то, как они делают в Apache Commons (при условии их лицензия):
public static boolean isSymlink(File file) throws IOException {
File canon;
if (file.getParent() == null) {
canon = file;
} else {
File canonDir = file.getParentFile().getCanonicalFile();
canon = new File(canonDir, file.getName());
}
return !canon.getCanonicalFile().equals(canon.getAbsoluteFile());
}
Изменить благодаря комментарию @LarsH. Вышеприведенный код проверяет, является ли файл children символической ссылкой.
Чтобы ответить на вопрос OP, это еще проще:
public static boolean containsSymlink(File file) {
return file.getCanonicalFile().equals(file.getAbsoluteFile());
}