현재 작업 폴더 확인
System.getProperty("user.dir") 을 통해 현재 작업 폴더 경로 값을 가져올 수 있다.
가져온 폴더 경로 값을 이용해 해당 폴더 내에 있는 파일과 폴더들을 배열로 반환할 수 있다.
💻 예제 1
📝 소스 코드
import java.io.File;
public class Main {
public static void main(String[] args) {
System.out.println("디렉터리 정보 확인\n");
String curWorkingDir = System.getProperty("user.dir");
System.out.println("현재 작업 폴더 : " + curWorkingDir);
System.out.println();
// 현재 작업 디렉터리의 파일 리스트 출력
File curDir = new File(curWorkingDir); // 현재 작업 디렉터리 객체
File[] list = curDir.listFiles();
for (int i = 0; i < list.length; i++) {
if (list[i].isDirectory())
System.out.print("DIR" + "\t");
else
System.out.print("FILE" + "\t");
System.out.print(list[i].getName() + "\t");
System.out.println(list[i].length());
}
System.out.println();
System.out.println();
System.out.println("상대 경로 이용한 디렉터리 정보 확인\n");
File tempDir = new File("temp"); // 상대 경로 이용한 파일 객체 생성
File[] list2 = tempDir.listFiles();
for (File f : list2) {
if (f.isFile())
System.out.print("FILE" + "\t");
else
System.out.print("DIR" + "\t");
System.out.print(f.getName() + "\t");
System.out.println(f.length());
}
}
}
현재 작업 폴더 경로 값을 curWorkingDir 변수에 저장하였다.
해당 변수를 이용해 new File()을 하면 현재 작업 디렉터리 객체를 생성할 수 있다.
listFiles() 메소드는 디렉터리 안에 있는 파일과 디렉터리들을 배열로 반환한다.
배열로 반환한 값을 File[] list에 저장하였다.
getName()을 사용하면 현재 작업 폴더 내에 있는 디렉터리와 파일 이름들을 가져올 수 있다.
length()는 파일의 크기(byte)를 반환한다. 디렉터리의 경우 length 값이 의미가 없다.
아래 실행 결과를 보면 현재 작업 폴더 밑에 temp 폴더가 있는 걸 확인할 수 있다.
따라서 new File("temp")로 상대 경로를 이용해 파일 객체를 생성해보았다.
getAbsolutePath() 메소드를 이용해 파일 객체의 절대 경로를 가져올 수 있다.
📄 실행 결과
경로 확인
💻 예제 2
📝 소스 코드
import java.io.File;
public class Main {
public static void main(String[] args) {
String path = "dummy.txt";
File f = new File(path); // 상대 경로
System.out.println("파일 이름(상대 경로) : " + f.getName()); // 상대 경로 이름
System.out.println("절대 경로 : " + f.getAbsolutePath()); // 절대 경로
System.out.println("파일 존재? " + f.exists()); // 물리적으로 존재하는지 여부
}
}
📄 실행 결과
앞서 File tempDir = new File("temp") 를 한 것처럼 dummy.txt 파일도 상대 경로를 이용해 파일 객체를 생성하였다.
getName() 메소드를 통해 상대 경로 이름을 가져올 수 있다.
exists() 메소드를 이용해 물리적으로 존재하는지의 여부를 알 수 있는데, Java 예제 1의 실행 결과에서 보듯이 현재 폴더 내에 dummy.txt 파일은 존재하지 않으므로 false가 반환된다.