본문 바로가기
프로그래밍/Java-자주쓰는예제

【Java-파일】파일과 디렉토리에 권한부여하기

by 코이킹 2021. 9. 13.
반응형

1. 설명 

이 포스트의 예제는 파일이나 디렉토리에 리눅스에서 권한부여를 할때 사용하는 명령어 chmod처럼 숫자값을 사용하여 권한을 부여하는 코드입니다. 


2. 소스코드

- 메서드

	public boolean setPermission(String path, Integer permission) {
		File f = new File(path);
		
		if (!f.exists()) {
			return false;
		}
		
		File target = new File(path);
		boolean res = false;
		
		switch (permission) {
		case PERMISSION_X:
			res = setPermission(target,false,false,true);
			break;
		case PERMISSION_W:
			res = setPermission(target,false,true,false);
			break;
		case PERMISSION_R:
			res = setPermission(target,true,false,false);
			break;
		case PERMISSION_WX:
			res = setPermission(target,false,true,true);
			break;
		case PERMISSION_RX:
			res = setPermission(target,true,false,true);
			break;
		case PERMISSION_RWX:
			res = setPermission(target,true,true,true);
			break;
		default:
			res = setPermission(target,false,false,false);
			break;
		}
		
		return res;
	}
    
    	private boolean setPermission(File target , boolean read, boolean write, boolean exe) {
		try {
			target.setReadable(read);
			target.setWritable(write);
			target.setExecutable(exe);
			return true;
			
		} catch (Exception e) { 
			e.printStackTrace(); 
			return false; 
		}
	}

 

- 메인 

public class File_08_SetPermission {
	
	public static void main(String[] args) {
		try {
			for (String str : args ) {
				System.out.println("Param : "+str);
			}
			
			String path = args[0];
			String value = args[1];
			FileUtil fu = new FileUtil();
			
			System.out.println("Before : "+ fu.checkPermission(path));
			
			System.out.println("Result : "+ fu.setPermission(path, Integer.parseInt(value)));
			
			System.out.println("After : "+ fu.checkPermission(path));
			
			System.exit(0);
			
		} catch (Exception e) {
			e.printStackTrace();
			System.exit(1);
		}
	}
}

3. 실행결과【Windows(이클립스) / Linux】


4. 전체코드

https://github.com/leeyoungseung/template-java

반응형

댓글