-
[JAVA/자바] 디렉토리 복사Language/Java 2018. 4. 28. 18:45반응형
디렉토리 복사
Directory Copy
만들고 싶은 기능
1. 사용자가 직접 경로 입력 ( 대상 / 위치 )
2. 폴더안의 내용 모두를 복사한다.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667import java.io.*;public class FileCopy {FileInputStream fis;FileOutputStream fos;BufferedReader br;String sF , tF;FileCopy(){br = new BufferedReader(new InputStreamReader(System.in));try{System.out.println("복사할 파일의 디렉토리 주소를 입력하여 주세요 \nex) C:\\STUDY");sF = br.readLine();System.out.println("복사할 파일이 복사될 주소를 입력하여 주세요 \nex) D:\\CIVIC");tF = br.readLine() + "\\copy";File sourceF = new File(sF);File targetF = new File(tF);copy(sourceF , targetF);}catch(Exception e) {}}// 폴더를 복사하는public void copy(File sourceF , File targetF) {targetF.mkdir();File[] fileList = sourceF.listFiles();for(File file : fileList) {File temp = new File(targetF.getAbsolutePath() + File.separator + file.getName());if(file.isDirectory()) {temp.mkdir();copy(file , temp);}else {try {fis = new FileInputStream(file);fos = new FileOutputStream(temp);byte[] b = new byte[4096];int count = 0;while((count = fis.read(b)) != -1) {fos.write(b , 0 , count);}System.out.println("파일 복사 성공");}catch(Exception e) {System.out.println("파일 복사 실패");e.printStackTrace();}finally {try {fis.close();fos.close();}catch(Exception e) {}}}}}public static void main(String[] args) {FileCopy fc = new FileCopy();}}cs [ C:\civic 폴더 ] 에는 method 폴더의 3개의 java 파일 + JAVA-ICON 이라는 이미지 파일이 있습니다.
그이후 만들어 놓았던 복사될 주소 [ C:\ccc 폴더 ] 를 입력하면 들어가는 것을 확인 할 수 있습니다.
< 복사가 완료된 것을 확인 할 수 있다. >
그냥 엔터 칠 경우
Default 값으로 + "\\copy" 를 했기 때문에
[ C:\copy 폴더] 가 생성되는 것 또한 확인할 수 있다.
"\\" 을 2번 해주는 이유는
"\n" , "\t" 등등 하나의 "\" 을 입력하는 경우에
\가 생략되는 경우가 있기 때문이다.
참고
1. IO 입출력 ( BufferedReader / FileInputStream )
반응형'Language > Java' 카테고리의 다른 글
[JAVA 40] 자바 ArrayReader 메모리의 객체에 I/O (0) 2018.04.29 [JAVA 39] 자바 File Stream / Data Stream ( I / O ) (0) 2018.04.28 [JAVA/자바] 파일 이동 ( 복사 / 삭제 ) (0) 2018.03.19 [JAVA/자바] 달력 ( Calendar ) 만들기 (3) 2018.03.17 [JAVA/자바] 제비뽑기 다수 인원 뽑기 [가변배열/Vector/Hashtable] (0) 2018.03.15