1. 새폴더 만들기(dir.mkdir(), dir.mkdirs())
1-1. 폴더 하나만 만들 때
String path = "C:\\class\\code\\java\\file\\aaa";
File dir = new File(path);
boolean result = dir.mkdir();
//하나만 만들때는 mkdir(make directory). 폴더 속 폴더를 만들거면 mkdirs
System.out.println(result); //이미 만들었는데 또 같은이름으로 만들면 false뜸
1-2. 폴더 속 폴더를 만들 때
String path = "C:\\class\\code\\java\\file\\bbb\\ccc\\ddd";
//ddd라는 폴더를 만드는 것. ddd가 중요한게 아니라 bbb와 ccc폴더가 중요
File dir = new File(path);
boolean result = dir.mkdirs(); //mkdirs : 현재 경로(path)중에 없는 폴더가 있으면 한번에 다 만들어줌
System.out.println(result);
EX1 ) 요구사항] 회원 명단 > 개인 폴더 생성
String[] member = { "홍길동", "아무개", "하하하", "호호호", "유재석", "강호동", "조세호", "이이경" };
for(int i=0; i<member.length; i++) {
//회원 1명당 1개의 폴더 생성
String path = String.format("C:\\class\\code\\java\\file\\member\\[개인폴더]%s님", member[i]);
File dir = new File(path);
dir.mkdir(); //mkdirs도 가능하지만 속도가 느림
}
System.out.println("종료");
EX2 ) 요구사항] 날짜별 폴더 생성
- "2023-01-01" ~ "2023-12-31" X 365개 생성
- C:\class\code\java\file\plan\2023-01-01
루프 + Calendar
Calendar c = Calendar.getInstance(); //우선 오늘 날짜를 불러와서
c.set(2023, 0, 1); //2023-01-01로 세팅해줌
for(int i=0; i<365; i++) { //폴더 생성을 365번 해줌
//폴더를 넣을 경로: C:\class\code\java\file\plan\2023-01-01
String path = "C:\\class\\code\\java\\file\\plan" + String.format("%tF\n", c); //지정된 경로 내, Calendar c가 들어가게 함
File dir = new File(path);
dir.mkdir(); //폴더 만들기
c.add(Calendar.DATE, 1); //루프가 돌 때마다 날짜에 1씩 더해주기(자동으로 연, 월 바뀜)
}
System.out.println("종료");
2. 폴더명 수정 + 이동하기(dir1.renameTo(dir2))
- "member" 폴더명을 "회원" 폴더명으로 이름 변경
File dir1 = new File("C:\\class\\code\\java\\file\\member");
File dir2 = new File("C:\\class\\code\\java\\file\\회원");
if(dir1.exists()) {
dir1.renameTo(dir2); //폴더 내 내용물이 있어도 폴더명 수정에는 영향 없음
}
System.out.println("종료");
- "file" 폴더를 "move"폴더로 이동
File dir1 = new File("C:\\class\\code\\java\\file\\회원");
File dir2 = new File("C:\\class\\code\\java\\move\\회원");
if(dir1.exists()) {
dir1.renameTo(dir2); //dir1(file폴더)에 있는 파일들(회원)이 dir2(move폴더)로 이동
}
System.out.println("종료");
3. 폴더 삭제하기(dir1.delete())
※ 빈 폴더만 삭제 가능!
File dir1 = new File("C:\\class\\code\\java\\file\\bbb"); //bbb폴더 내에 파일들이 있으면 에러남
if(dir1.exists()) {
boolean result = dir1.delete();
System.out.println(result);
}
System.out.println("종료");
4. 폴더 속 내용 보기
String path = "C:\\class\\dev\\eclipse";
File dir = new File(path);
if(dir.exists()) {
File[] list = dir.listFiles(); //폴더 배열 list 생성
for(File file : list) { // File 클래스 file은 list 배열안에 있는걸 루프
System.out.println(file.getName()); //path안에 있는 파일들 이름
System.out.println(file.isFile()); //path안에 있는 파일들 이름
System.out.println(file.isDirectory()); //path안에 있는 파일들 이름
System.out.println(); //path안에 있는 파일들 이름
}
for(File file : list) {
if(file.isDirectory()) { //폴더 목록 가져오기
System.out.printf("[%s]\n", file.getName());
}
}
for(File file : list) {
if(file.isFile()) { //파일 목록 가져오기
System.out.printf(file.getName());
}
}
}
'[JAVA] 정리 > 파일(file)' 카테고리의 다른 글
| 파일(file) - 6. 텍스트 입출력_기본 지식 (0) | 2023.02.27 |
|---|---|
| 파일(file) - 5. 폴더 속 폴더 속 파일 보기 (0) | 2023.02.27 |
| 파일(file) - 4. 파일 조작(재귀 메소드) (0) | 2023.02.27 |
| 파일(file) - 2. 파일 조작(새로 만들기, 파일명 수정, 파일 이동, 파일 삭제) (0) | 2023.02.26 |
| 파일(file) - 1. 파일, 폴더 정보 확인 (0) | 2023.02.26 |