mkdirs() 라는 메서드(함수)로, 디렉토리(폴더)를 만들 수 있습니다.

mkdirs() 는 디렉토리 생성에 성공하면 true 를 반환하기에, 실패시 에러를 출력하려면 if문 속에서 느낌표를 붙여, 논리값을 반전시켜 주어야 합니다.

같은 이름의 디렉토리가 이미 있을 때나

디렉토리명에 허용되지 않는 문자(*, ? 등)가 있을 때

에는 아래 예제의 경우, "디렉토리 생성 실패"라는 메시지가 출력됩니다.

여러 개의 중첩된 폴더를 한꺼번에 생성하려면 슬래시(/) 기호로 패스를 구분해 줍니다.

mkdir() 이라는 단수형 이름의 메소드로도 디렉토리를 만들 수 있지만, 여러개를 한꺼번에 만들 수는 없습니다.

디렉토리 만들기 예제


소스 파일명: Example.java
import java.io.*;

public class Example {
  public static void main(String[] args) {

    // MY_TEST_DIR 이라는 하위 폴더 만들기

    File f = new File("MY_TEST_DIR");
    if (!f.mkdirs())
      System.err.println("디렉토리 생성 실패");




    // MY_TEST_DIR 이라는 하위 폴더 밑에
    // 333 이라는 하위 폴더 또 만들기
    // 즉, MY_TEST_DIR/333 이렇게 중첩된 폴더 한꺼번에 생성

    f = new File("MY_TEST_DIR/333");
    if (!f.mkdirs())
      System.err.println("디렉토리 생성 실패");


  }
}


위의 자바 코드를 실행하면, 현재 디렉토리에 MY_TEST_DIR 이라는 폴더가 생기고, 그 안에 333 이라는 폴더가 또 들어 있을 것입니다.


File 클래스의 delete() 메소드(함수)로, 파일이나 디렉토리를 지울 수 있습니다. 파일 지우기에 실패했을 때는, false 를 반환합니다.


자바: 파일 삭제 예제 (Java: Delete File Example)


파일명: Foo.java
(현재 디렉토리에 test_9999.txt 라는 이름의 파일이 존재할 때는 그 파일을 지우고, 없을 때에는 에러 메시지를 출력합니다.)
import java.io.*;

public class Foo {
  public static void main(String[] args) {

    String s = "test_9999.txt";
    File f = new File(s);


    if (f.delete()) {
      System.out.println("파일 또는 디렉토리를 성공적으로 지웠습니다: " + s);
    } else {
      System.err.println("파일 또는 디렉토리 지우기 실패: " + s);
    }


  }
}


파일명 대신에 디렉토리명을 지정해 주면, delete() 로 디렉토리도 지울 수 있지만, 비어 있지 않은 디렉토리는 지울 수 없습니다.


컴파일 및 실행 결과:
D:\Z>javac Foo.java && java Foo
파일 또는 디렉토리를 성공적으로 지웠습니다: test_9999.txt

D:\Z>java Foo
파일 또는 디렉토리 지우기 실패: test_9999.txt

D:\Z>

test_9999.txt 라는 파일 지웠기에, 두번째 실행했을 때는 파일이 없어서 에러 메시지가 출력되었습니다.


출처 - http://mwultong.blogspot.com/2007/03/java-mkdir-mkdirs-create-directory.html









'Development > Java' 카테고리의 다른 글

jdom - xmlns, xsi 설정  (0) 2012.10.04
java - 파일 읽기 및 쓰기  (0) 2012.10.04
java - JDOM  (0) 2012.10.02
java - Date 시간 및 날짜 차이 계산  (0) 2012.09.08
java - substring, charAt, indexOf 을 이용한 문자열 추출  (0) 2012.09.05
Posted by linuxism
,