이 페이지의 구성
디렉토리속성정보체크
개요
디렉토리 속성정보인 디렉토리명, 생성일자(최종수정일자), 소유계정, 읽기권한, 쓰기권한, 접근권한, 사이즈 정보를 확인하는 기능을 제공한다. 본 기능은 전자정부 표준프레임워크 공통컴포넌트 요소기술 내에 구성되어 있다.
활용 예시
디렉토리 속성정보 체크 기능은 다음과 같은 상황에서 활용할 수 있다.
- 애플리케이션이 사용하는 디렉토리의 존재 여부와 상태를 확인하는 경우
- 파일 업로드 또는 로그 저장 경로의 읽기·쓰기 권한을 점검하는 경우
- 디렉토리 용량을 확인하여 저장 공간을 관리하는 경우
- 운영 서버의 디렉토리 소유자와 접근 권한을 확인하는 경우
설명
지정한 디렉토리 경로를 기준으로 이름, 최종 수정일자, 소유자, 접근 권한 및 용량 등의 속성정보를 조회한다. 이를 통해 애플리케이션에서 사용하는 디렉토리의 상태와 사용 가능 여부를 확인할 수 있다.
기능 설명
디렉토리 속성정보 체크에서 제공하는 기능은 다음과 같다.
- 디렉토리명을 확인하는 기능
- 디렉토리 최종수정일자를 확인하는 기능
- 디렉토리의 소유계정을 확인하는 기능
- 디렉토리의 읽기권한을 확인하는 기능
- 디렉토리의 쓰기권한을 확인하는 기능
- 디렉토리의 접근권한을 확인하는 기능
- 디렉토리의 사이즈를 확인하는 기능
관련 소스
| 유형 | 대상소스명 | 설명 | 비고 |
|---|---|---|---|
| Service | egovframework.com.utl.sim.service.EgovFileTool.java | 파일관리 요소기술 클래스 | |
| JSP | WEB_INF/jsp/egovframework/cmm/utl/EgovDrctryInfoCeck.jsp | 테스트 페이지 |
클래스 및 메소드 설명
디렉토리 속성정보 체크 기능은 EgovFileTool 클래스의 메소드를 활용하여 제공한다.
| 결과값 | 메소드명 | 설명 | 내용 |
|---|---|---|---|
| String | getName(path) | 디렉토리명 조회 | 성공 시 디렉토리명, 실패 시 빈 문자열 리턴 |
| String | getLastModifiedDateFromFile(path) | 수정일자 조회 | 최종 수정일자를 조회한다. 성공 시 8자리 날짜, 실패 시 빈 문자열 리턴 |
| String | getOwner(path) | 소유자 조회 | 소유자 계정명을 조회한다. 성공 시 소유계정명, 실패 시 빈 문자열 리턴 |
| boolean | canRead(path) | 읽기권한 조회 | 디렉토리의 읽기 권한 여부를 확인한다. 권한이 있으면 true, 없으면 false 리턴 |
| boolean | canWrite(path) | 쓰기권한 조회 | 디렉토리의 쓰기 권한 여부를 확인한다. 권한이 있으면 true, 없으면 false 리턴 |
| String | getAccess(path) | 접근권한 조회 | 접근권한을 조회한다. 성공 시 권한 문자열, 실패 시 빈 문자열 리턴 |
| long | getDirectorySize(path) | 용량 조회 | 디렉토리 내 모든 파일과 하위 크기 합계를 조회한다. (byte 단위 리턴) |
파라미터 정의 (Input)
targetDirPath(또는path): String 타입의 절대경로를 포함하는 확인대상 디렉토리 경로 (예:/product/jeus/egovProps/tmp/dir1)
반환값 정의 (Output)
- String 타입: 항목별로 확인된 속성정보
- boolean 타입: 권한 유무 (
true/false) - long 타입: 사이즈 정보 (byte 단위)
사용 시 주의사항
- 조회 대상 경로는 애플리케이션이 접근할 수 있는 유효한 디렉토리 경로여야 한다.
- 운영체제와 실행 계정의 권한에 따라 조회 결과가 달라질 수 있다.
getDirectorySize는 하위 디렉토리와 파일을 함께 조회하므로, 대상 디렉토리의 크기가 큰 경우 처리 시간이 증가할 수 있다.getOwner,getAccess메소드는 유닉스 계열 운영체제의 쉘 스크립트를 사용하므로 실행 권한과 경로 설정을 확인해야 한다.
환경 설정
getOwner, getAccess 메소드는 쉘 스크립트의 실행 결과를 활용하여 정보를 확인한다. 호출 시 활용되는 쉘 스크립트의 정보는
globals.properties에 등록한다.
globals.properties
#1. getOwner 메소드에 해당되는 쉘 스크립트
SHELL.UNIX.getDrctryOwner = /product/jeus/egovProps/prg/getDrctryOwner.sh
#2. getAccess 메소드에 해당되는 쉘 스크립트
SHELL.UNIX.getMoryInfo = /product/jeus/egovProps/prg/getDrctryAccess.sh
getDrctryOwner.sh (유닉스용 디렉토리 소유자 조회 스크립트)
ls -alF $1 | grep $2 | awk -F" " '{print $3}'
getDrctryAccess.sh (유닉스용 디렉토리 접근권한 조회 스크립트)
ls -alF $1 | grep $2 | awk -F" " '{print $1}'
사용 방법
import egovframework.com.utl.sim.service.EgovFileTool;
String targetDirPath1 = "user/com/jeus";
String directoryName1 = EgovFileTool.getName(targetDirPath1);
String lastModifiedDate1 = EgovFileTool.getLastModifiedDateFromFile(targetDirPath1);
String owner1 = EgovFileTool.getOwner(targetDirPath1);
boolean canRead1 = EgovFileTool.canRead(targetDirPath1);
boolean canWrite1 = EgovFileTool.canWrite(targetDirPath1);
String roleStr = EgovFileTool.getAccess(targetDirPath1);
long dirSize1 = EgovFileTool.getDirectorySize(targetDirPath1);
참고자료
- N/A