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 중국어 웹사이트의 기타 관련 기사를 참조하세요!