Java 1.6에서 기호 링크 확인
UNIX 시스템에서 작동하는 DirectoryWalker 클래스의 컨텍스트에서 File 인스턴스가 기호 링크인지 확인 디렉토리에 대한 링크는 어려울 수 있습니다. 제공된 조건:
if (file.getAbsolutePath().equals(file.getCanonicalPath()))
지표 역할을 할 수 있지만 완전히 신뢰할 수는 없습니다.
대체 접근 방식
더 신뢰할 수 있음 Apache Commons에서 사용되는 기술에는 상위 디렉터리의 정식 경로와 파일 자체의 정식 경로를 비교하는 작업이 포함됩니다.
public static boolean isSymlink(File file) throws IOException { if (file.getParent() == null) { canon = file; } else { File canonDir = file.getParentFile().getCanonicalFile(); canon = new File(canonDir, file.getName()); } return !canon.getCanonicalFile().equals(canon.getAbsoluteFile()); }
여기서 정식 경로와 절대 경로 간의 불일치는 기호가 있음을 나타냅니다. 링크. 그러나 이 알고리즘은 다음 가정을 기반으로 한다는 점에 유의하는 것이 중요합니다.
이러한 가정이 사실이 아닐 경우 알고리즘은 심볼릭 링크의 존재를 정확하게 판단하지 못할 수 있습니다.
위 내용은 다음은 \'챌린지\' 및 질문 형식을 다루는 몇 가지 제목 옵션입니다. * Java 1.6에서 심볼릭 링크를 안정적으로 감지하는 방법은 무엇입니까? * 심링크인가요? Java 1.6 Direct를 위한 안정적인 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!