강좌 & 팁
글 수 2,412
2013.01.27 11:28:39 (*.52.177.29)
153294
이번 시간은 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(); } } }
위의 샘플소스를 실행후 디렉토리가 잘 생성되었는지 확인해 보세요.
다음 시간에는 디렉토리 내용을 나열하는 방법을 해보겠습니다.
감사합니다.