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

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

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

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    移動文件和目錄

    Posted on 2009-05-24 20:54 啥都寫點 閱讀(263) 評論(0)  編輯  收藏 所屬分類: J2SE
    關鍵技術:
    • File的renameTo方法能移動文件。
    • 當目標文件存在,或者目標文件的父目錄不存在時,renameTo方法返回false.


    package book.io;
    import java.io.File;
    /**
     * 移動文件或目錄
     
    */
    public class MoveFileUtil {

        
    /**
         * 移動單個文件,不覆蓋已存在的目標文件
         * 
    @param srcFileName    待移動的原文件名    
         * 
    @param destFileName    目標文件名
         * 
    @return        文件移動成功返回true,否則返回false
         
    */
        
    public static boolean moveFile(String srcFileName, String destFileName){
            
    //默認為不覆蓋目標文件
            return MoveFileUtil.moveFile(srcFileName, destFileName, false);
        }
        
    /**
         * 移動單個文件
         * 
    @param srcFileName    待移動的原文件名
         * 
    @param destFileName    目標文件名
         * 
    @param overlay        如果目標文件存在,是否覆蓋
         * 
    @return    文件移動成功返回true,否則返回false
         
    */
        
    public static boolean moveFile(String srcFileName, 
                String destFileName, 
    boolean overlay){
            
    //判斷原文件是否存在
            File srcFile = new File(srcFileName);
            
    if (!srcFile.exists()){
                System.out.println(
    "移動文件失敗:原文件" + srcFileName + "不存在!");
                
    return false;
            } 
    else if (!srcFile.isFile()){
                System.out.println(
    "移動文件失敗:" + srcFileName + "不是一個文件!");
                
    return false;
            }
            File destFile 
    = new File(destFileName);
            
    //如果目標文件存在
            if (destFile.exists()){
                
    //如果允許文件覆蓋
                if (overlay){
                    
    //刪除已存在的目標文件,無論目標文件是目錄還是單個文件
                    System.out.println("目標文件已存在,準備刪除它!");
                    
    if(!DeleteFileUtil.delete(destFileName)){
                        System.out.println(
    "移動文件失敗:刪除目標文件" + destFileName + "失敗!");
                        
    return false;
                    }
                } 
    else {
                    System.out.println(
    "移動文件失敗:目標文件" + destFileName + "已存在!");
                    
    return false;
                }
            } 
    else {
                
    if (!destFile.getParentFile().exists()){
                    
    //如果目標文件所在的目錄不存在,則創建目錄
                    System.out.println("目標文件所在目錄不存在,準備創建它!");
                    
    if(!destFile.getParentFile().mkdirs()){
                        System.out.println(
    "移動文件失敗:創建目標文件所在的目錄失敗!" );
                        
    return false;
                    }
                }
            }
            
    //移動原文件至目標文件
            if (srcFile.renameTo(destFile)){
                System.out.println(
    "移動單個文件" + srcFileName + "" + destFileName + "成功!");
                
    return true;
            } 
    else {
                System.out.println(
    "移動單個文件" + srcFileName + "" + destFileName  + "失敗!");
                
    return true;
            }
        }
        
        
    /**
         * 移動目錄,不覆蓋已存在的目標目錄
         * 
    @param srcDirName    待移動的原目錄名
         * 
    @param destDirName    目標目錄名
         * 
    @return        目錄移動成功返回true,否則返回false
         
    */
        
    public static boolean moveDirectory(String srcDirName, String destDirName){
            
    //默認為不覆蓋目標文件
            return MoveFileUtil.moveDirectory(srcDirName, destDirName, false);
        }
        
        
    /**
         * 移動目錄。
         * 
    @param srcDirName    待移動的原目錄名
         * 
    @param destDirName    目標目錄名
         * 
    @param overlay        如果目標目論存在,是否覆蓋
         * 
    @return        目錄移動成功返回true,否則返回false
         
    */
        
    public static boolean moveDirectory(String srcDirName, 
                String destDirName, 
    boolean overlay){
            
    //判斷原目錄是否存在
            File srcDir = new File(srcDirName);
            
    if (!srcDir.exists()){
                System.out.println(
    "移動目錄失敗:原目錄" + srcDirName + "不存在!");
                
    return false;
            } 
    else if (!srcDir.isDirectory()){
                System.out.println(
    "移動目錄失敗:" + srcDirName + "不是一個目錄!");
                
    return false;
            }
            
    // 如果目標文件夾名不以文件分隔符結尾,自動添加文件分隔符
            if (!destDirName.endsWith(File.separator)){
                destDirName 
    = destDirName + File.separator;
            }
            File destDir 
    = new File(destDirName);
            
    //如果目標文件夾存在,
            if (destDir.exists()){
                
    if (overlay){
                    
    //允許覆蓋則刪除已存在的目標目錄
                    System.out.println("目標目錄已存在,準備刪除它!");
                    
    if (!DeleteFileUtil.delete(destDirName)){
                        System.out.println(
    "移動目錄失敗:刪除目標目錄" + destDirName + "失敗!");
                    }
                } 
    else {
                    System.out.println(
    "移動目錄失敗:目標目錄" + destDirName + "已存在!");
                    
    return false;
                }
            } 
    else {
                
    //創建目標目錄
                System.out.println("目標目錄不存在,準備創建它!");
                
    if(!destDir.mkdirs()){
                    System.out.println(
    "移動目錄失敗:創建目標目錄失敗!" );
                    
    return false;
                }
            }
            
    boolean flag = true;
            
    //移動原目錄下的文件和子目錄到目標目錄下
            File[] files = srcDir.listFiles();
            
    for (int i = 0; i < files.length; i++) {
                
    //移動子文件
                if (files[i].isFile()){
                    flag 
    = MoveFileUtil.moveFile(files[i].getAbsolutePath(), 
                            destDirName 
    + files[i].getName(), overlay);
                    
    if (!flag){
                        
    break;
                    }
                }
                
    //移動子目錄
                else if (files[i].isDirectory()){
                    flag 
    = MoveFileUtil.moveDirectory(files[i].getAbsolutePath(), 
                            destDirName 
    + files[i].getName(), overlay);
                    
    if (!flag){
                        
    break;
                    }
                }
            }
            
    if (!flag){
                System.out.println(
    "移動目錄" + srcDirName + "" + destDirName+ "失敗!");
                
    return false;
            }
            
    // 刪除原目錄
            if (DeleteFileUtil.deleteDirectory(srcDirName)){
                System.out.println(
    "移動目錄" + srcDirName + "" + destDirName+ "成功!");
                
    return true;
            } 
    else {
                System.out.println(
    "移動目錄" + srcDirName + "" + destDirName+ "失敗!");
                
    return false;
            }
        }
        
        
    public static void main(String[] args) {
            
    //移動單個文件,如果目標文件存在,則替換
            String srcFileName = "C:/temp/temp.txt";
            String destFileName 
    = "C:/tempbak/temp_bak.txt.";
            MoveFileUtil.moveFile(srcFileName, destFileName, 
    true);
            System.out.println();
            
    //移動目錄,如果目標目錄存在,則不覆蓋
            String srcDirName = "C:/temp";
            String destDirName 
    = "C:/tempbak";
            MoveFileUtil.moveDirectory(srcDirName, destDirName);
        }
    }



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 亚洲国产综合专区电影在线| 亚洲国产V高清在线观看| 久久久青草青青亚洲国产免观| 又硬又粗又长又爽免费看 | 亚洲色图国产精品| 在线看片免费人成视频福利| 亚洲国产精品无码久久九九| 免费一级毛片在线播放视频免费观看永久 | 24小时免费直播在线观看| 亚洲天堂中文字幕在线| 亚洲人成777在线播放| 亚洲一区二区三区免费| 在线播放免费人成视频在线观看| 亚洲免费中文字幕| 免费看又爽又黄禁片视频1000| 久久久久久久亚洲Av无码| 国产A∨免费精品视频| 黑人精品videos亚洲人| 亚洲毛片免费视频| 亚洲精华国产精华精华液网站| 成人免费无码大片A毛片抽搐| 久久精品国产亚洲av麻豆色欲| 最近中文字幕高清免费中文字幕mv | 青青青免费国产在线视频小草| 亚洲女久久久噜噜噜熟女| 亚洲hairy多毛pics大全| 免费很黄很色裸乳在线观看| 色老板亚洲视频免在线观| 蜜桃精品免费久久久久影院| 人成午夜免费大片在线观看| 亚洲国产天堂久久综合网站| 国内一级一级毛片a免费| 成人免费网站视频www| 18gay台湾男同亚洲男同| 日韩成人免费在线| 亚洲精品久久无码| 中文字幕在线亚洲精品| h片在线免费观看| 男女交性无遮挡免费视频| 亚洲日本一区二区| 免费A级毛片无码A∨男男|