파일 또는 디렉토리 복사

파일이나 디렉토리 복사는 copy(Path, Path, CopyOption...) Method를 사용한다.

타겟 파일이 존재 할 경우 에러가 발생하는데 원치 않을 경우 REPLACE_EXISTING 옵션을 사용하면된다.


디렉토리와 복사가 가능하다.

심볼릭 링크의 경우 대상이 복사 된다.


다음은 옵션 정보 이다.

  • REPLACE_EXISTING - 이미 존재 할 경우에도 복사를 진행한다. 다만, 비어 있지 않은 디렉토리일 경우 FileAlreadExistException 이 발생한다.
  • COPY_ATTRIBUTES - 파일에 대한 속성 값도 함께 복사 한다. 파일 속성은 시스템과 플랫폼에 의존한다.
  • NOFOLLOW_LINKS - 원본이 심볼릭링크의 경우 링크 복사를 한다.(링크 대상이 아닌)
import static java.nio.file.StandardCopyOption.*;
...
Files.copy(source, target, REPLACE_EXISTING);


또한 복사 기능은 stream 과 file 에서 사용이 가능하다.

  • copy(InputStream, Path, CopyOptions...)
  • copy(Path, OutputStream)


참조 : http://docs.oracle.com/javase/tutorial/essential/io/copy.html

'JAVA > NIO2' 카테고리의 다른 글

[NIO.2]Managing Metadata (File and File Store Attributes)  (0) 2013.11.25
[NIO.2]Moving a File or Directory  (0) 2013.11.25
[NIO.2]Copying a File or Directory  (0) 2013.11.25
[NIO.2]Deleting a File or Directory  (0) 2013.11.25
[NIO.2]Checking a File or Directory  (0) 2013.11.25
[NIO.2]Files Class  (0) 2013.11.20
Posted by lahuman

파일 및 디렉토리 삭제


Files class에서는 2개의 삭제 Method를 제공한다.


1. delete(Path)

 delete(Path) 는 삭제 실패시 Exception을 던진다. 예를 들면 파일이 없을 경우 NoSuchFileException Exception을 던진다.

try {
    Files.delete(path);
} catch (NoSuchFileException x) {
    System.err.format("%s: no such" + " file or directory%n", path);
} catch (DirectoryNotEmptyException x) {
    System.err.format("%s not empty%n", path);
} catch (IOException x) {
    // File permission problems are caught here.
    System.err.println(x);
}

2. deleteIfExists(Path) 

 deleteIfExists(Path) 역시 파일을 삭제 한다. 그러나 존재 하지 않을 경우 Exception을 던지지 않는다. Exception을 던지지 않고 싶다면 이 Method를 사용 하면 된다.


참조 : http://docs.oracle.com/javase/tutorial/essential/io/delete.html

'JAVA > NIO2' 카테고리의 다른 글

[NIO.2]Moving a File or Directory  (0) 2013.11.25
[NIO.2]Copying a File or Directory  (0) 2013.11.25
[NIO.2]Deleting a File or Directory  (0) 2013.11.25
[NIO.2]Checking a File or Directory  (0) 2013.11.25
[NIO.2]Files Class  (0) 2013.11.20
[NIO.2]The Path Class  (0) 2013.11.13
Posted by lahuman

파일 또는 디렉토리 확인


1. 존재 여부 확인

  • exists(Path, LinkOption...) : 존재 할 경우 true
  • notExists(Path, LinkOption...) : 존재 하지 않을 경우 true

만약 exists와 notExists의 결과가 동일하게 false 일 경우 Path의 값이 명확하지 않을 경우다.


2. 파일 권한

  • isReadable(Path) : 읽기 가능할 경우 true
  • isWritable(Path) : 쓰기 가능할 경우 true
  • isExecutable(Path) : 실행 가능할 경우 true
Path file = ...;
boolean isRegularExecutableFile = Files.isRegularFile(file) &
         Files.isReadable(file) & Files.isExecutable(file);


3. 같은 파일인지 확인

  • isSameFile(Path, Path)
Path p1 = ...;
Path p2 = ...;

if (Files.isSameFile(p1, p2)) {
    // Logic when the paths locate the same file
}


참조 : http://docs.oracle.com/javase/tutorial/essential/io/check.html

'JAVA > NIO2' 카테고리의 다른 글

[NIO.2]Copying a File or Directory  (0) 2013.11.25
[NIO.2]Deleting a File or Directory  (0) 2013.11.25
[NIO.2]Checking a File or Directory  (0) 2013.11.25
[NIO.2]Files Class  (0) 2013.11.20
[NIO.2]The Path Class  (0) 2013.11.13
[JAVA.7]NIO2 노트 시작 합니다.  (0) 2013.11.12
Posted by lahuman