>  기사  >  Java  >  Java 1.6에서 심볼릭 링크를 정확하게 결정하는 방법은 무엇입니까?

Java 1.6에서 심볼릭 링크를 정확하게 결정하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-28 05:47:01874검색

How to Accurately Determine Symbolic Links in Java 1.6?

Java 1.6에서 심볼릭 링크 결정

Java 1.6 환경 내에서 디렉토리를 효율적으로 탐색하려면 실제 심볼릭 링크와 실제 심볼릭 링크를 구별하는 것이 필수적입니다. 디렉토리 및 디렉토리에 대한 심볼릭 링크. File 개체가 디렉터리를 나타내는 경우 다음 조건을 통해 그것이 심볼릭 링크인지 정확하게 확인할 수 있습니까?

if (file.getAbsolutePath().equals(file.getCanonicalPath())) {
    // Real directory
} else {
    // Possible symbolic link
}

답변:

이 기술은 다음을 나타낼 수 있습니다. 심볼릭 링크이므로 확실한 보증을 제공할 수 없습니다. 절대 경로와 표준 경로가 일치하지 않으면 기호 링크를 최종적으로 확인하기보다는 단순히 특별한 처리의 필요성을 강조할 수 있습니다.

대체 접근 방식:

Apache Commons는 제공합니다. 더욱 안정적인 솔루션. 상위 디렉터리의 정식 경로와 자체 정식 경로를 비교하여 파일이 심볼릭 링크인지 여부를 결정합니다.

<code class="java">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());
}</code>

이 세련된 방법은 비교를 통해 심볼릭 링크를 식별하는 보다 정확한 방법을 제공합니다. 파일의 정식 경로와 상위 디렉터리의 경로입니다.

위 내용은 Java 1.6에서 심볼릭 링크를 정확하게 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.