package kr.or.didt.basic;
import java.io.File;
public class FileTest01 {
public static void main(String[] args) {
//File객체 만들기 연습
//1. new File(String 파일 이름 또는 경로)
// ==> 디렉토리와 디렉토리 사이 또는 디렉토리와 파일명 사이의
// 구분 문자는 '\'를 사용하거나 '/'를 사용할 수 있다.
// File file1 = new File("d:/d_other/test.txt");//구분 문자로 '/'사용
File file1 = new File("d:\\d_other\\test.txt");//구분 문자로 '\'사용
System.out.println("파일명 : " +file1.getName());
System.out.println("디렉토리여부 : " +file1.isDirectory());
System.out.println("파일 여부 : " +file1.isFile());
System.out.println();
File file2 = new File("d:/D_Other");
System.out.println("폴더명 : "+file2.getName());
System.out.println("디렉토리 여부 : "+file2.isDirectory());
System.out.println("파일 여부 : " +file2.isFile());
System.out.println();
//2-1. new File(File parent, String child)
//2-2. new File(String parent, String child)
// ==> 'parent'폴더(디렉토리) 안에 있는 'child'파일을 나타낸다.
// File file3 = new File(file2, "test.txt");
File file3 = new File("d:/D_Other", "test.txt");
System.out.println("파일명 : " +file3.getName());
System.out.println("디렉토리여부 : " +file3.isDirectory());
System.out.println("파일 여부 : " +file3.isFile());
System.out.println();
// 디렉토리(폴더) 만들기
/*
* - mkdir() ==> File객체의 경로 중 마지막 위치의 디렉토리를 만든다.
* ==> 반환값 : 만들기 성공 : true, 만들기 실패 : false
* ==> 중간 부분의 경로가 모두 만들어져 있어야
* 마지막 위치의 디렉토리를 만들 수 있다.
* - mkdirs() ==> 중간 부분의 경로가 없으면 중간 부분의 경로도
* 같이 만들어 준다.
*
*/
File file4 = new File("D:/d_other/연습용");//없어도 객체 생성가능
System.out.println(file4.getName()+"의 존재 여부 : "+ file4.exists());
if(!file4.exists()){//연습용 폴더가 존재하지 않으면 실행하라
if(file4.mkdir()){//만들기가 성공했으면 실행 아니면 else
System.out.println(file4.getName() + "만들기 성공!!!!");
}else{
System.out.println(file4.getName() + "만들기 실패~~~~");
}
}else{
System.out.println(file4.getName()+"은 이미 존재합니다.");
}
System.out.println();
File file5 = new File("d:/d_other/test/java/src");
//맨끝에 있는 src를 만들겠다는 의미
if(!file5.exists()){
if(file5.mkdirs()){
System.out.println(file5.getName() + "만들기 성공!!");
}else{
System.out.println(file5.getName() + "만들기 실패~~");
}
}else{
System.out.println(file5.getName() + "은 이미 존재합니다.");
}
}
}
package kr.or.didt.basic;
import java.io.File;
public class FileTest02 {
public static void main(String[] args) {
File f1 = new File("d:/d_other/test.txt");
System.out.println(f1.getName() + "의 크기 : " + f1.length() + "bytes");
System.out.println("path : " + f1.getPath());
System.out.println("absolutePath : " + f1.getAbsolutePath());
File f2 = new File(".");
System.out.println("path : " + f2.getPath());
System.out.println("absolutPath" + f2.getAbsolutePath());
System.out.println("-----------------------------------");
if(f2.isDirectory()){
System.out.println(f2.getName() + "은 디렉토리 입니다.");
}else if(f2.isFile()){
System.out.println(f2.getName() + "은 파일 입니다.");
}else{
System.out.println(f2.getName() + "은 뭘까?");
}
File f3 = new File("d:/d_other/sample.exe");
if(f3.isDirectory()){
System.out.println(f3.getName() + "은 디렉토리 입니다.");
}else if(f3.isFile()){
System.out.println(f3.getName() + "은 파일 입니다.");
}else{
System.out.println(f3.getName() + "은 뭘까?");
}
}
}
package kr.or.didt.basic;
import java.io.File;
import java.sql.Date;
import java.text.SimpleDateFormat;
public class FileTest03 {
public static void main(String[] args) {
FileTest03 test = new FileTest03();
File file = new File("d:/d_other");
test.displayFileList(file);
}
// 디렉토리를 갖는 File객체를 인수 값으로 받아서
// 해당 디렉토리에 있는 모든 파일과 디렉토리 목록을 출력하는 메서드
public void displayFileList(File dir){
if(!dir.isDirectory()){
System.out.println("대상 디렉토리(폴더)가 없거나, 디렉토리(폴더)만 가능합니다.");
return;
}
System.out.println("[" + dir.getAbsolutePath() + "] 디렉토리 내용");
System.out.println();
// 해당 디렉토리 안에 있는 모든 파일과 디렉토리 목록을 구해온다.
File[] files = dir.listFiles();
//String[] filesstr = dir.list();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd a HH:mm");
//년-월-일 오전/오후 몇시:몇분
//가져온 파일과 디렉토리 목록 개수만큼 반복 처리
for (int i = 0; i < files.length; i++) {
String fileName = files[i].getName();
String attr = ""; //파일 속성(읽기, 쓰기, 히든, 디렉토리여부)
String size = ""; //파일 크기
if(files[i].isDirectory()){
attr = "<DIR>";
}else{
size = files[i].length() + "";//+ ""을 추가해서 문자로 만들어 준것
attr = files[i].canRead() ? "R" : "";
attr += files[i].canWrite() ? "W" : "";
attr += files[i].isHidden() ? "H" : "";
}
System.out.printf("%s %5s %12s %s\n",
df.format(new Date(files[i].lastModified()) )
, attr , size, fileName);//attr는 5글자 안에 쓰라는 말
}
}
}