본문 바로가기

Programming/JAVA

디렉토리 복사 예제(java.io)

특별히 어려운 부분이 없으니 예제만 참고하세요~

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class CopyDir {
        public static void copyDirectory(File sourcelocation , File targetdirectory)
    throws IOException {
            //디렉토리인 경우
            if (sourcelocation.isDirectory()) {              
                    //복사될 Directory가 없으면 만듭니다.
                if (!targetdirectory.exists()) {
                    targetdirectory.mkdir();
                }
               
                String[] children = sourcelocation.list();
                for (int i=0; i<children.length; i++) {
                    copyDirectory(new File(sourcelocation, children[i]),
                            new File(targetdirectory, children[i]));
                }
            } else {
                //파일인 경우
                InputStream in = new FileInputStream(sourcelocation);                
                        OutputStream out = new FileOutputStream(targetdirectory);
               
                // Copy the bits from instream to outstream
                byte[] buf = new byte[1024];
                int len;
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                }
                in.close();
                out.close();
            }
        }
       
    public static void main(String[] args) throws IOException {
            //c:\LOG의 내용을 c:\Temp에 복사 합니다.
            File source = new File("c:\\LOG");
            File target = new File("c:\\Temp");
           
            copyDirectory(source , target);
    }
   
}