반응형
폴더내의 파일 또는 폴더 목록을 갖고 올 수 있는 3가지 방법입니다.
소스는 간단하니 필요에 따라서 3가지 방법 중 하나를 선택하면 될 듯 합니다.
Win으로 시작하는 모든 파일 찾기 예제입니다.
1. public File[] listFiles()
import java.io.File;
public class FileListSample {
public static void main(String[] args) {
String dirPath = "C:\\Windows\\System32";
File dir = new File(dirPath);
File[] files = dir.listFiles();
for(File f : files) {
if(f.isFile() && f.getName().toUpperCase().startsWith("WIN")) {
System.out.println(f.getName());
}
}
}
}
2. public File[] listFiles(FilenameFilter filter)
- FilenameFilter를 사용 할 경우 파일인지 폴더인지 구분이 안되어서 File 객체를 만들어서 확인이 필요합니다.
import java.io.File;
import java.io.FilenameFilter;
public class FileListSample {
public static void main(String[] args) {
String dirPath = "C:\\Windows\\System32";
File dir = new File(dirPath);
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if(name.toUpperCase().startsWith("WIN")) {
File f = new File(dir, name);
return f.isFile();
}
return false;
}
});
for(File f : files) {
System.out.println(f.getName());
}
}
}
3. public File[] listFiles(FileFilter filter)
- FileFilter를 이용할 경우 accept에 아규먼트가 File 객체여서 조금 더 간편하게 사용이 가능하네요.
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
public class FileListSample {
public static void main(String[] args) {
String dirPath = "C:\\Windows\\System32";
File dir = new File(dirPath);
File[] files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
if(file.isFile() && file.getName().toUpperCase().startsWith("WIN")) {
return true;
}else {
return false;
}
}
});
for(File f : files) {
System.out.println(f.getName());
}
}
}
반응형
'Java' 카테고리의 다른 글
Java 시간 차이 구하기(날짜 비교) (0) | 2021.02.18 |
---|---|
Annotation을 이용한 Servlet 매핑과 액션 (0) | 2021.02.16 |
Java - HTML 문자 Escape 하기 (1) | 2021.02.03 |
Java - SQLite 데이터베이스 사용하기 (3) | 2021.02.01 |
Java SQL 인젝션(SQL Injection) 해킹 방지를 위한 Escape 문자 변환 방법 (0) | 2021.01.22 |
댓글