加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java文件操作工具类

发布时间:2020-12-15 00:15:30 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 移动目录或者文件, 将一个文件夹下所有文件移动到另一个文件夹下,将指定文件移动到目的目录,刪除指定目录和其下所有子目录和文件,如果指定的是文

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

移动目录或者文件, 将一个文件夹下所有文件移动到另一个文件夹下,将指定文件移动到目的目录,刪除指定目录和其下所有子目录和文件,如果指定的是文件则直接删除
import java.io.File;
 
/**
 * 
 * @Title : FileUtils
 * @File Name : FileUtils.java
 * @Description : 文件操作工具类
 * @Date : 2014年8月10日
 * @author : 王鸿运
 * @version : 1.0
 * @Others :
 * @History 1.<br/>
 *          Date : <br/>
 *          Author : <br/>
 *          Modification: <br/>
 */
public class FileUtils {
     
    public static final String FILE_SEP = System.getProperty("file.separator");
     
    /**
     * 
     * @Function  :  moveFile
     * @Desc  :  移动目录或者文件
     * @Author  : 王鸿运  
     * @param srcFilePath  源文件(目录)路径
     * @param destFilePath  目的文件(目录)路径
     * @return  true:操作成功,false:操作失败
     */
    public static boolean moveFile(String srcFilePath,String destFilePath) {
        File srcFile = new File(srcFilePath);
        if (!srcFile.exists()) {
            return false;
        }
         
        if (srcFile.isDirectory()) {
            File[] subFiles = srcFile.listFiles();
            for (File file : subFiles) {
                moveFile(file.getAbsolutePath(),destFilePath +FILE_SEP+ file.getName());
            }
        }
         
        File destFile = new File(destFilePath);
        File destParentFile = destFile.getParentFile();
        if (!destParentFile.exists()) {
            destParentFile.mkdirs();
        }
        srcFile.renameTo(destFile);
         
        return true;
    }
     
    /**
     * @Function  :  moveChildren
     * @Desc  :  指定目录下所有的子目录和文件到目的目录
     * @Author  : 王鸿运  
     * @param srcFilePath  源目录路径
     * @param destFilePath  目的路径
     * @return  true:操作成功,false:操作失败
     */
    public static boolean moveAllChildren(String srcFilePath,String destFilePath) {
        File srcDir = new File(srcFilePath);
        if (!srcDir.exists() || !srcDir.isDirectory()) {
            return false;
        }
         
        File destDir = new File(destFilePath);
        if (destDir.exists()) {
            if ( destDir.isFile()) {
                destDir.delete();
                destDir = new File(destFilePath);
                destDir.mkdir();
            }
        } else {
            destDir.mkdirs();
        }
         
        File[] children = srcDir.listFiles();
        for (File file : children) {
            moveFile(file.getAbsolutePath(),destFilePath);
        }
         
        return true;
    }
     
    /**
     * 
     * @Function  :  moveFiles
     * @Desc  :  将指定文件移动到目的目录
     * @Author  : 王鸿运  
     * @param srcFiles 源文件,支持多个路径参数
     * @param destDirPath 目的目录
     * @return true:操作成功,false:操作失败
     */
    public static boolean moveFiles(String destDirPath,String ... srcFiles){
        if (srcFiles == null || srcFiles.length == 0) {
            return false;
        }
        File destDir = new File(destDirPath);
         
        boolean destExists = true;
        if (!destDir.exists()) {
            destExists = destDir.mkdirs(); 
        } else if(destDir.isFile()){
            return false;
        }
         
        if (!destExists) {
            return false;
        }
         
        for (String srcFilePath : srcFiles) {
            File srcFile = new File(srcFilePath);
            if (srcFile.exists() && srcFile.isFile()) {
                srcFile.renameTo(new File(destDirPath + FILE_SEP + srcFile.getName()));
            }
        }
        return true;
    }
     
    /**
     * 
     * @Function : deleteSelfAndAllChildren
     * @Desc : 刪除指定目录和其下所有子目录和文件,如果指定的是文件则直接删除
     * @Author : 王鸿运
     * @param dirPath 源目录或文件路径
     * @return true:删除成功,false:删除失败
     */
    public static boolean deleteSelfAndAllChildren(String dirPath) {
        File srcFile = new File(dirPath);
        if (!srcFile.exists()) {
            return false;
        }
         
        if (srcFile.isFile()) {
            srcFile.delete();
        } else {
            File[] children = srcFile.listFiles();
             
            if (children.length == 0) {
                srcFile.delete();
            } else {
                for (File file : children) {//先删除子文件和目录
                    deleteSelfAndAllChildren(file.getAbsolutePath());
                }
                //再删除本身
                srcFile.delete();
            }
        }
        return true;
    }
     
    /**
     * 
     * @Function  :  deleteAllChildren
     * @Desc  :  删除一个目录下所有的子目录和文件
     * @Author  : 王鸿运  
     * @param dirPath
     * @return true:删除成功,false:删除失败
     */
    public static boolean deleteAllChildren(String dirPath){
        File dir = new File(dirPath);
        if (!dir.exists()) {
            return false;
        }
        File[] children = dir.listFiles();
        for (File file : children) {
            deleteSelfAndAllChildren(file.getAbsolutePath());
        }
         
        return true;
    }
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读