<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的java天地

    java復制文件或文件夾

    @import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
    package com.xuanwu.mtoserver.util;

    import java.io.*;

    /**
     * 
    @author Toby 復制文件夾或文件夾
     
    */
    public class FileUtil {

        
    public static void main(String args[]) throws IOException {
            
    // 源文件夾
            String url1 = "D:/user/test/";
            
    // 目標文件夾
            String url2 = "D:/user/testcopy/";
            
    // 創建目標文件夾
            (new File(url2)).mkdirs();
            
    // 獲取源文件夾當前下的文件或目錄
            File[] file = (new File(url1)).listFiles();
            
    for (int i = 0; i < file.length; i++) {
                
    if (file[i].isFile()) {
                    
    // 復制文件
                    String type = file[i].getName().substring(file[i].getName().lastIndexOf("."+ 1);

                    
    if (type.equalsIgnoreCase("txt"))// 轉碼處理
                        copyFile(file[i], new File(url2 + file[i].getName()), MTOServerConstants.CODE_UTF_8, MTOServerConstants.CODE_GBK);
                    
    else
                        copyFile(file[i], 
    new File(url2 + file[i].getName()));
                }
                
    if (file[i].isDirectory()) {
                    
    // 復制目錄
                    String sourceDir = url1 + File.separator + file[i].getName();
                    String targetDir 
    = url2 + File.separator + file[i].getName();
                    copyDirectiory(sourceDir, targetDir);
                }
            }
        }

        
    // 復制文件
        public static void copyFile(File sourceFile, File targetFile) throws IOException {
            BufferedInputStream inBuff 
    = null;
            BufferedOutputStream outBuff 
    = null;
            
    try {
                
    // 新建文件輸入流并對它進行緩沖
                inBuff = new BufferedInputStream(new FileInputStream(sourceFile));

                
    // 新建文件輸出流并對它進行緩沖
                outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));

                
    // 緩沖數組
                byte[] b = new byte[1024 * 5];
                
    int len;
                
    while ((len = inBuff.read(b)) != -1) {
                    outBuff.write(b, 
    0, len);
                }
                
    // 刷新此緩沖的輸出流
                outBuff.flush();
            } 
    finally {
                
    // 關閉流
                if (inBuff != null)
                    inBuff.close();
                
    if (outBuff != null)
                    outBuff.close();
            }
        }

        
    // 復制文件夾
        public static void copyDirectiory(String sourceDir, String targetDir) throws IOException {
            
    // 新建目標目錄
            (new File(targetDir)).mkdirs();
            
    // 獲取源文件夾當前下的文件或目錄
            File[] file = (new File(sourceDir)).listFiles();
            
    for (int i = 0; i < file.length; i++) {
                
    if (file[i].isFile()) {
                    
    // 源文件
                    File sourceFile = file[i];
                    
    // 目標文件
                    File targetFile = new File(new File(targetDir).getAbsolutePath() + File.separator + file[i].getName());
                    copyFile(sourceFile, targetFile);
                }
                
    if (file[i].isDirectory()) {
                    
    // 準備復制的源文件夾
                    String dir1 = sourceDir + "/" + file[i].getName();
                    
    // 準備復制的目標文件夾
                    String dir2 = targetDir + "/" + file[i].getName();
                    copyDirectiory(dir1, dir2);
                }
            }
        }

        
    /**
         * 
         * 
    @param srcFileName
         * 
    @param destFileName
         * 
    @param srcCoding
         * 
    @param destCoding
         * 
    @throws IOException
         
    */
        
    public static void copyFile(File srcFileName, File destFileName, String srcCoding, String destCoding) throws IOException {// 把文件轉換為GBK文件
            BufferedReader br = null;
            BufferedWriter bw 
    = null;
            
    try {
                br 
    = new BufferedReader(new InputStreamReader(new FileInputStream(srcFileName), srcCoding));
                bw 
    = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destFileName), destCoding));
                
    char[] cbuf = new char[1024 * 5];
                
    int len = cbuf.length;
                
    int off = 0;
                
    int ret = 0;
                
    while ((ret = br.read(cbuf, off, len)) > 0) {
                    off 
    += ret;
                    len 
    -= ret;
                }
                bw.write(cbuf, 
    0, off);
                bw.flush();
            } 
    finally {
                
    if (br != null)
                    br.close();
                
    if (bw != null)
                    bw.close();
            }
        }

        
    /**
         * 
         * 
    @param filepath
         * 
    @throws IOException
         
    */
        
    public static void del(String filepath) throws IOException {
            File f 
    = new File(filepath);// 定義文件路徑
            if (f.exists() && f.isDirectory()) {// 判斷是文件還是目錄
                if (f.listFiles().length == 0) {// 若目錄下沒有文件則直接刪除
                    f.delete();
                } 
    else {// 若有則把文件放進數組,并判斷是否有下級目錄
                    File delFile[] = f.listFiles();
                    
    int i = f.listFiles().length;
                    
    for (int j = 0; j < i; j++) {
                        
    if (delFile[j].isDirectory()) {
                            del(delFile[j].getAbsolutePath());
    // 遞歸調用del方法并取得子目錄路徑
                        }
                        delFile[j].delete();
    // 刪除文件
                    }
                }
            }
        }
    }




    package com.xuanwu.mtoserver.util;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    import org.apache.tools.ant.Project;
    import org.apache.tools.ant.taskdefs.Zip;
    import org.apache.tools.ant.types.FileSet;
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;

    import com.xuanwu.smap.comapi.SmapMtMessage;

    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;

    /**
     * 
    @author Toby 通用工具類
     
    */
    public class Utils {

        
    /**
         * 
    @param args
         * 
    @throws Exception
         * 
    @throws IOException
         
    */
        
    public static void main(String[] args) throws IOException, Exception {
            
    // TODO Auto-generated method stub
            
    // File file = new File("D:/user/mms.xml");
            
    // System.out.println(file.renameTo(new File("D:/user/mms5.xml")));

            
    // 1
            
    // compress("D:/user/test", "D:/user/test.zip");

            
    /*
             * String fileName = "D:/user/88.zip"; try {
             * System.out.println(encryptBASE64(readFileToBytes(fileName))); } catch
             * (Exception e) { // TODO Auto-generated catch block
             * e.printStackTrace(); }
             
    */

            
    /*
             * String mi
             * ="UEsDBBQACAA";
             * RandomAccessFile inOut = new RandomAccessFile(
             * "D:/user/sample.","rw"); inOut.write(decryptBASE64(mi));
             * inOut.close();
             
    */

            
    // System.out.println(new String(decryptBASE64("5rWL6K+V"),"utf-8"));
            
    // 2
            
    // String xml =
            
    // createXML("1828","qww","123456","10658103619033","15918542546",encryptBASE64("兩款茶飲潤肺護膚防過敏".getBytes()),encryptBASE64(readFileToBytes("D:/user/test.zip")));
            
    // System.out.println(xml);
            /*
             * String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"
             * standalone=\"yes\"?><TaskDataTransfer4ERsp
             * xmlns=\"
    http://www.aspirehld.com/iecp/TaskDataTransfer4ERsp\"><ResultCode>2000</ResultCode><TaskId></TaskId><ResultMSG>沒有獲得IP鑒權!</ResultMSG></TaskDataTransfer4ERsp>";
             * 
             * Document doc = DocumentHelper.parseText(xml); // 將字符串轉為XML Element
             * rootElt = doc.getRootElement(); // 獲取根節點
             * 
             * String resultCode = rootElt.element("ResultCode").getTextTrim();
             * String TaskId = rootElt.element("TaskId").getTextTrim(); String
             * ResultMSG = rootElt.element("ResultMSG").getTextTrim();
             * System.out.println(" "+resultCode+" "+TaskId+" "+ResultMSG);
             
    */

        }

        
    /**
         * BASE64解密
         * 
         * 
    @param key
         * 
    @return
         * 
    @throws Exception
         
    */
        
    public static byte[] decryptBASE64(String key) throws Exception {
            
    return (new BASE64Decoder()).decodeBuffer(key);
        }

        
    /**
         * BASE64加密
         * 
         * 
    @param key
         * 
    @return
         * 
    @throws Exception
         
    */
        
    public static String encryptBASE64(byte[] key) throws Exception {
            
    return (new BASE64Encoder()).encodeBuffer(key);
        }

        
    /**
         * 獲取路徑下所有文件名
         * 
         * 
    @param path
         * 
    @return
         
    */
        
    public static String[] getFile(String path) {
            File file 
    = new File(path);
            String[] name 
    = file.list();
            
    return name;
        }

        
    /**
         * 
         * 
    @param sourceDirPath
         * 
    @param targetDirPath
         * 
    @throws IOException
         
    */
        
    public static void copyDir(String sourceDirPath, String targetDirPath) throws IOException {
            
    // 創建目標文件夾
            (new File(targetDirPath)).mkdirs();
            
    // 獲取源文件夾當前下的文件或目錄
            File[] file = (new File(sourceDirPath)).listFiles();
            
    for (int i = 0; i < file.length; i++) {
                
    if (file[i].isFile()) {
                    
    // 復制文件
                    String type = file[i].getName().substring(file[i].getName().lastIndexOf("."+ 1);

                    
    if (type.equalsIgnoreCase("txt"))
                        FileUtil.copyFile(file[i], 
    new File(targetDirPath + file[i].getName()), MTOServerConstants.CODE_UTF_8,
                                MTOServerConstants.CODE_GBK);
                    
    else
                        FileUtil.copyFile(file[i], 
    new File(targetDirPath + file[i].getName()));
                }
                
    if (file[i].isDirectory()) {
                    
    // 復制目錄
                    String sourceDir = sourceDirPath + File.separator + file[i].getName();
                    String targetDir 
    = targetDirPath + File.separator + file[i].getName();
                    FileUtil.copyDirectiory(sourceDir, targetDir);
                }
            }
        }

        
    /**
         * 讀取文件中內容
         * 
         * 
    @param path
         * 
    @return
         * 
    @throws IOException
         
    */
        
    public static String readFileToString(String path) throws IOException {
            String resultStr 
    = null;
            FileInputStream fis 
    = null;
            
    try {
                fis 
    = new FileInputStream(path);
                
    byte[] inBuf = new byte[2000];
                
    int len = inBuf.length;
                
    int off = 0;
                
    int ret = 0;
                
    while ((ret = fis.read(inBuf, off, len)) > 0) {
                    off 
    += ret;
                    len 
    -= ret;
                }
                resultStr 
    = new String(new String(inBuf, 0, off, MTOServerConstants.CODE_GBK).getBytes());
            } 
    finally {
                
    if (fis != null)
                    fis.close();
            }
            
    return resultStr;
        }

        
    /**
         * 文件轉成字節數組
         * 
         * 
    @param path
         * 
    @return
         * 
    @throws IOException
         
    */
        
    public static byte[] readFileToBytes(String path) throws IOException {
            
    byte[] b = null;
            InputStream is 
    = null;
            File f 
    = new File(path);
            
    try {
                is 
    = new FileInputStream(f);
                b 
    = new byte[(int) f.length()];
                is.read(b);
            } 
    finally {
                
    if (is != null)
                    is.close();
            }
            
    return b;
        }

        
    /**
         * 將byte寫入文件中
         * 
         * 
    @param fileByte
         * 
    @param filePath
         * 
    @throws IOException
         
    */
        
    public static void byteToFile(byte[] fileByte, String filePath) throws IOException {
            OutputStream os 
    = null;
            
    try {
                os 
    = new FileOutputStream(new File(filePath));
                os.write(fileByte);
                os.flush();
            } 
    finally {
                
    if (os != null)
                    os.close();
            }
        }

        
    /**
         * 將目錄文件打包成zip
         * 
         * 
    @param srcPathName
         * 
    @param zipFilePath
         * 
    @return 成功打包true 失敗false
         
    */
        
    public static boolean compress(String srcPathName, String zipFilePath) {
            
    if (strIsNull(srcPathName) || strIsNull(zipFilePath))
                
    return false;

            File zipFile 
    = new File(zipFilePath);
            File srcdir 
    = new File(srcPathName);
            
    if (!srcdir.exists())
                
    return false;
            Project prj 
    = new Project();
            Zip zip 
    = new Zip();
            zip.setProject(prj);
            zip.setDestFile(zipFile);
            FileSet fileSet 
    = new FileSet();
            fileSet.setProject(prj);
            fileSet.setDir(srcdir);
            zip.addFileset(fileSet);
            zip.execute();
            
    return zipFile.exists();
        }

        
    /**
         * 判空字串
         * 
         * 
    @param str
         * 
    @return 為空true
         
    */
        
    public static boolean strIsNull(String str) {
            
    return str == null || str.equals("");
        }

        
    /**
         * 折分數組
         * 
         * 
    @param ary
         * 
    @param subSize
         * 
    @return
         
    */
        
    public static List<List<Object>> splitAry(Object[] ary, int subSize) {
            
    int count = ary.length % subSize == 0 ? ary.length / subSize : ary.length / subSize + 1;

            List
    <List<Object>> subAryList = new ArrayList<List<Object>>();

            
    for (int i = 0; i < count; i++) {
                
    int index = i * subSize;

                List
    <Object> list = new ArrayList<Object>();
                
    int j = 0;
                
    while (j < subSize && index < ary.length) {
                    list.add(ary[index
    ++]);
                    j
    ++;
                }

                subAryList.add(list);
            }

            
    return subAryList;
        }

        
    /**
         * 
    @param mobile
         * 
    @return
         
    */
        
    public static String ArrayToString(Object[] mobile) {
            String destId 
    = "";
            
    for (Object phone : mobile) {
                destId 
    += " " + (String) phone;
            }
            
    return destId.trim();
        }

    }

    posted on 2011-12-05 14:17 tobyxiong 閱讀(67983) 評論(16)  編輯  收藏 所屬分類: java

    評論

    # re: java復制文件或文件夾 2012-03-19 14:14 flower

    一點水平都沒有的代碼  回復  更多評論   

    # re: java復制文件或文件夾 2012-06-07 11:44 SBflower

    沒水平你自己去寫,看個毛!傻逼!@flower
      回復  更多評論   

    # re: java復制文件或文件夾 2012-07-20 18:26 ketty

    這段代碼對我來說非常受用,非常感謝~~~  回復  更多評論   

    # re: java復制文件或文件夾[未登錄] 2012-10-24 10:46 chen

    很不錯  回復  更多評論   

    # re: java復制文件或文件夾 2012-12-12 10:23 fu

    MTOServerConstants 能不能解釋這個類  回復  更多評論   

    # re: java復制文件或文件夾 2013-02-13 11:59 是打發

    講解的非常詳細 <a href="http://www.biyingbocai.com">利博亞洲</a>  回復  更多評論   

    # re: java復制文件或文件夾[未登錄] 2013-03-05 17:47 hello

    FileUtils  回復  更多評論   

    # re: java復制文件或文件夾 2013-05-11 12:12 czm

    那請拿出高水平的代碼來秀一下@flower
      回復  更多評論   

    # re: java復制文件或文件夾 2013-09-12 11:46 yjl

    挺好的東西,可以參考哦  回復  更多評論   

    # re: java復制文件或文件夾 2013-10-28 11:12

    挺好的啊  回復  更多評論   

    # re: java復制文件或文件夾 2013-11-05 10:20 jimgo

    想不到復制個文件也有這么多學問  回復  更多評論   

    # re: java復制文件或文件夾[未登錄] 2013-12-22 13:42 啊啊

    不錯  回復  更多評論   

    # re: java復制文件或文件夾 2013-12-24 20:18 新西奈

    謝謝分享!學習了!真的很好!!!  回復  更多評論   

    # re: java復制文件或文件夾[未登錄] 2014-01-06 11:30 andy

    我出現個問題:目標文件夾沒有權限(拒絕訪問),怎么解決  回復  更多評論   

    # re: java復制文件或文件夾 2014-01-30 12:55 karas

    File file=new File(路徑+File.separator+file.getName());
    初始化路徑沒寫全.自己檢查一下  回復  更多評論   

    # 采用遞歸調用可以簡化程序 2015-06-08 23:50 joren

    package Study.IoStream.Senior;

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

    public class CopyStreamDirOne {

    /**
    * 文件夾的拷貝
    * 1.如果是文件,直接復制
    * 2.如果是文件夾,直接創建
    * 3.遞歸查找子文件夾
    *
    * @param args
    */
    public static void main(String[] args) {
    //源文件夾
    String strPath="D:/DTLFolder/DriversBackup/file2";
    File strFile=new File(strPath);

    //目標文件夾
    String destPath="D:/DTLFolder/DriversBackup/test";
    File destFile=new File(destPath);

    copyDict(strFile,destFile);
    }
    /**
    * 復制文件夾
    * @param str
    * @param dest
    */
    public static void copyDict(File str,File dest){
    //判斷文件第一個文件為文件夾還是文件
    if(str.isFile()){
    try {
    copyFile(str,dest);//將原文件復制給dest
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("沒有該文件,請重新確認");
    }
    catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("輸出異常,請確認");
    }
    }else if(str.isDirectory()){
    //假如是文件夾
    dest=new File(dest,str.getName()); //復制到目標文件夾里
    dest.mkdirs(); //創建文件夾
    for(File subStr:str.listFiles()){
    copyDict(subStr,dest);
    }

    }

    }
    /**
    * 復制文件
    * @throws FileNotFoundException,IOException
    */
    public static void copyFile(File str,File dest) throws FileNotFoundException,IOException{
    //在目標文件中創建文件名
    dest=new File(dest,str.getName());
    dest.createNewFile(); //創建文件
    //選擇流
    InputStream inpStr=new FileInputStream(str);
    OutputStream outStr=new FileOutputStream(dest);

    byte[] cas=new byte[1024]; //數據流通過讀取存儲在硬盤上的字節碼,故采用字節類型,并指定一次讀取的個數
    int len=0; //用于標識個數
    while(-1!=(len=inpStr.read(cas))){
    //-1標識文件讀取結束
    outStr.write(cas, 0, len);
    }
    //寫完之后,要運行flush強制執行
    outStr.flush();

    //關閉數據流 反向
    outStr.close();
    inpStr.close();
    }

    }
      回復  更多評論   

    <2014年1月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統計

    常用鏈接

    留言簿(3)

    隨筆分類(144)

    隨筆檔案(157)

    相冊

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品自在自线免费观看| 国产好大好硬好爽免费不卡| 精品国产麻豆免费人成网站| 色www永久免费网站| 国产精品永久免费10000| 内射无码专区久久亚洲| 亚洲AV无码欧洲AV无码网站| 亚洲欧美黑人猛交群| 麻豆精品成人免费国产片| 成人免费无码大片a毛片 | 精品久久久久久久久免费影院| 99在线精品免费视频九九视| 成人免费无码大片A毛片抽搐色欲| 亚洲日韩欧洲无码av夜夜摸| 狠狠色伊人亚洲综合成人| 亚洲人成网站999久久久综合| 西西人体免费视频| 天天看免费高清影视| 亚洲AV美女一区二区三区| 国产精品亚洲一区二区三区久久 | 四虎成人免费观看在线网址| 亚洲色偷拍另类无码专区| 亚洲精品日韩一区二区小说| 香蕉免费一区二区三区| 亚洲精品国产精品国自产观看| 亚洲国产精品综合一区在线| 亚洲av无码专区在线观看亚| 一级毛片一级毛片免费毛片| 日本一区二区三区免费高清| 免费在线观看亚洲| 亚洲一区精彩视频| 久久免费观看国产99精品| 亚洲第一黄片大全| 亚洲另类自拍丝袜第五页| 永久在线毛片免费观看| 国产成人精品日本亚洲| 亚洲乱码卡三乱码新区| 久久久久久久岛国免费播放 | 国产AV无码专区亚洲精品| 亚洲国产成人手机在线电影bd| A国产一区二区免费入口|