Post
EN

Java 파일 복사

자바 파일 복사.

회사서 썻던 코드를 고대로 복사 붙여넣기햇네 ㅋㅋ;; 이런

package com.winglish.serverfile.service;

import com.module.jdbc.CommonDBConn; import com.module.trans.RequestUtil; import com.winglish.serverfile.dao.DataCopyDAO; import com.winglish.serverfile.dao.DataCopyInter;

import java.io.*;

import java.util.*;

import static java.lang.System.out;

public class DataCopyService {

    private DataCopyInter dao = null;     private CommonDBConn db = null;

    public void Copy(RequestUtil request) {         HashMap getHm = new HashMap();

        String inFolder = request.getParameter(“filePath”);         String outFolder = ”d:\output\”;         String outName = ””;         //이동후의 폴더         GregorianCalendar cal = new GregorianCalendar();

        //이동전의 폴더에 있는 파일들을 읽는다.         List dirList = getDirFileList(inFolder);

        int size = dirList.size();         //폴더의 사이즈만큼 돌면서 파일을 이동시킨다.

        int startNum = Integer.parseInt(request.getParameter(“start”));

        int t = 0;        // dao = new DataCopyDAO(db.getResource());         List ogList = null;

        try {     //        ogList = dao.GetList(); /*             getHm = (HashMap)al.get(i);             sName = (String)getHm.get(“name”);   /            // 미구현.          /   for(int i =0 ; i <ogList.size();i++){

                        getHm = (HashMap)ogList.get(i);                         System.out.println(getHm.get(“og_num”));

            }

         */             File f = null;             for (int i = 0; i < dirList.size()/2; i++) {

                String outFolderName=”d:/output/orange_gme_“+startNum;                 f = new File(outFolderName);                 if(!f.isDirectory()){                     f.mkdir();                 }                 //makeDir(outFolderName); //디렉토리 생성.                 startNum++;             }

            startNum = Integer.parseInt(request.getParameter(“start”));            for (int i = 0; i < dirList.size()/2; i++) {

                       //i번째 저장되어 있는 파일을 불러온다.                        for (int y = 0; y < 2; y++) {

                           String fileName = dirList.get(t).getName();                            String outFolderName=””;                            if (fileName == null) {                                break;                            } else {

                               String name[] = fileName.split(“\.”);

                               String outName2 []= name[0].split(“_”);

                               outName = outName2[0] +”“+outName2[1]+””+ startNum + ”.” + name[1];                                outFolderName=outName2[0] +”“+outName2[1]+””+ startNum;                                out.println(“ 파일 이름은 : ” + fileName);                                fileCopy(inFolder + ”\“ + fileName, outFolder +outFolderName+ ”\“ + outName);                                t++;                            }

                       }

                       startNum++;

                   }

          /*             for (int i = 0; i < 84; i++) {

                //i번째 저장되어 있는 파일을 불러온다.

                      String fileName=”복사”+i;

                        outName = fileName;

                        out.println(“ 파일 이름은 : ” + fileName);                         fileCopy(inFolder + ”\“ + fileName, outFolder + ”\“ + outName);                         t++;                     }

            */

        } catch (Exception e) {             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.         }

    }

    //파일을 존재여부를 확인하는 메소드     public static Boolean fileIsLive(String isLivefile) {         File f1 = new File(isLivefile);

        if (f1.exists()) {             return true;         } else {             return false;         }     }

    //파일을 생성하는 메소드     public static void fileMake(String makeFileName) {         File f1 = new File(makeFileName);         try {             f1.createNewFile();         } catch (IOException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     }

    //파일을 삭제하는 메소드     public static void fileDelete(String deleteFileName) {         File I = new File(deleteFileName);         I.delete();     }

    public static void makeDir(String fName){

        File f = new File(fName);

        //String newFolderName [] =fName.split(“\.”);         //String newFolder=  newFolderName[0]+newFolderName[1];         System.out.println(“폴더 이름은 이거다~~~~~~~~~~ ”+fName);

         f.mkdir();         if(!f.mkdir()) System.err.println(“디렉토리 생성 실패!!”);

    }

    //파일을 복사하는 메소드     public static void fileCopy(String inFileName, String outFileName) {         try {             FileInputStream fis = new FileInputStream(inFileName);             FileOutputStream fos = new FileOutputStream(outFileName);             System.out.println(inFileName + ”== 경로로 복사 ====»“ + outFileName);

            byte[] buffer = new byte[1024 * 2];

            int dataSize = 0;             while ((dataSize = fis.read(buffer)) != -1) {                 fos.write(buffer, 0, dataSize);             }             fis.close();             fos.close();

        } catch (IOException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     }

    //파일을 이동하는 메소드     public static void fileMove(String inFileName, String outFileName) {         try {             FileInputStream fis = new FileInputStream(inFileName);             FileOutputStream fos = new FileOutputStream(outFileName);

            int data = 0;             while ((data = fis.read()) != -1) {                 fos.write(data);             }             fis.close();             fos.close();

            //복사한뒤 원본파일을 삭제함             fileDelete(inFileName);

        } catch (IOException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     }

    //디렉토리의 파일 리스트를 읽는 메소드     public static List getDirFileList(String dirPath) {         // 디렉토리 파일 리스트         List dirFileList = null;

        // 파일 목록을 요청한 디렉토리를 가지고 파일 객체를 생성함         File dir = new File(dirPath);

        // 디렉토리가 존재한다면         if (dir.exists()) {             System.out.println(“경로 ok”);             // 파일 목록을 구함             File[] files = dir.listFiles();

            // 파일 배열을 파일 리스트로 변화함             dirFileList = Arrays.asList(files);         } else {             System.out.println(“파일 없음..”);

        }         return dirFileList;     } }

서블릿으로 구현하려다가 그냥 실행된 후 파일 복사 되도록 변경.

위 소스는 일단 파일 명으로 폴더 생성 후 복사된 파일의 이름을 변경 저장. (파일은 2개씩 이름이 복사되어 저장됨.)

This article is licensed under CC BY 4.0 by the author.