"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java 1.6에서 파일이 심볼릭 링크인지 확실하게 확인하는 방법은 무엇입니까?

Java 1.6에서 파일이 심볼릭 링크인지 확실하게 확인하는 방법은 무엇입니까?

2024년 12월 17일에 게시됨
검색:489

 How to Reliably Determine if a File is a Symbolic Link in Java 1.6?

Java 1.6에서 기호 링크 확인

기호 링크가 있는지 확인하는 것은 다양한 파일 처리 작업에 중요할 수 있습니다. Java에서는 특히 디렉터리 순회 컨텍스트에서 기호 링크를 식별할 때 고려해야 할 잠재적인 문제가 있습니다.

기호 링크를 확인하는 일반적인 방법 중 하나는 파일의 절대 경로와 표준 경로를 비교하는 것입니다. 표준 경로는 파일에 대한 표준화된 경로를 나타내는 반면, 절대 경로에는 기호 링크가 포함될 수 있습니다. 전통적으로 이러한 경로가 일치하면 파일은 심볼릭 링크가 아니라는 개념이 있습니다. 그러나 이 조건은 완전히 신뢰할 수는 없습니다.

대체 접근 방식: 상위 디렉터리 확인

더 안정적인 방법은 파일 대신 상위 디렉터리의 정식 경로를 검사하는 것입니다. 그 자체. 이 접근 방식은 기호 링크가 파일 수준이 아닌 디렉터리 수준에서 확인된다는 사실에서 비롯됩니다. 따라서 상위 디렉터리와 파일의 표준 경로가 일치하지 않으면 파일이 기호 링크라는 강력한 표시입니다.

Apache Commons는 이 접근 방식을 구현하는 isSymlink라는 메서드를 제공합니다. 파일을 입력으로 받아 심볼릭 링크인지 여부를 나타내는 부울 값을 반환합니다. 이 방법의 논리는 다음과 같습니다.

  1. 파일에 상위 디렉터리가 없으면 루트 디렉터리로 간주되며 이는 심볼릭 링크가 될 수 없습니다.
  2. 그렇지 않으면 표준 경로 상위 디렉터리의 경로가 계산됩니다.
  3. 파일의 정식 경로는 상위 디렉터리의 정식 경로와 파일의 name.
  4. 파일의 절대 경로와 표준 경로를 비교합니다. 서로 다른 경우 파일은 심볼릭 링크로 간주됩니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3