이번 시간은 NIO2로 디렉토리 생성 및 삭제에 대해 알아보도록 하겠습니다.


디렉토리 생성및 삭제하는 방법은 아래와 같습니다.

- 디렉토리 생성 : Files.createDirectory(패스);
- 디렉토리 삭제 : Files.delete(패스);


linux기반에서는 디렉토리 생성시 권한 설정도 할 수 있습니다.

방법은 아래와 같습니다.

권한 설정 : Set<PosixFilePermission> permis = PosixFilePermissions.fromString("rwxr-x---");
파일 속성 : FileAttribute<Set<PosixFilePermission>> attrib= PosixFilePermissions.asFileAttribute(permis);

권한을 설정한 다음 파일 속성에 권한을 설정 하고 디렉토리 생성시 파라메터로 파일 속성을 넘겨주면 권한이 설정된

디렉토리가 만들어집니다.


[샘플소스]

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.FileAttribute;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;
 
public class Nio2NewDirectory {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		// windows
		Path newDir = FileSystems.getDefault().getPath("D:/nio2/newDirectory");
		createDirectoryWin(newDir);
 
		// linux
//		Path newDir = FileSystems.getDefault().getPath("/home/falinux/nio2/newDirectory");
//		createDirectoryLinux(newDir);
 
	}
 
	/**
	 * createDirectory(windows)
	 * @param newDir
	 */
	public static void createDirectoryWin(Path newDir) {
 
		try {
			// 디렉토리 생성
			Files.createDirectory(newDir);
 
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
 
	/**
	 * createDirectory(linux)
	 * @param newDir
	 */
	public static void createDirectoryLinux(Path newDir) {
 
		// 디렉토리 권한 설정
		Set<PosixFilePermission> permis = PosixFilePermissions.fromString("rwxr-x---");
		// 파일 속성
		FileAttribute<Set<PosixFilePermission>> attrib= PosixFilePermissions.asFileAttribute(permis);
 
		try {
			// 디렉토리 생성
			Files.createDirectory(newDir, attrib);
 
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
 
	/**
	 * delete Directory
	 * @param delDir
	 */
	public static void deleteDirectory(Path delDir) {
 
		try {
			// 디렉토리 삭제
			Files.delete(delDir);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

위의 샘플소스를 실행후 디렉토리가 잘 생성되었는지 확인해 보세요.

다음 시간에는 디렉토리 내용을 나열하는 방법을 해보겠습니다.


감사합니다.