package com.gx.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.log4j.Logger; /** * 文件操作类 * * */ public class FileUtil { private static final Logger logger = Logger.getLogger(FileUtil.class); private static final int BUFFER = 1024; /** * 功 能: 拷贝文件(只能拷贝文件) * * @param strSourceFileName * 指定的文件全路径名 * @param strDestDir * 拷贝到指定的文件夹 * @return 如果成功true;否则false */ public boolean copyTo(String strSourceFileName, String strDestDir) { File fileSource = new File(strSourceFileName); File fileDest = new File(strDestDir); // 如果源文件不存或源文件是文件夹 if (!fileSource.exists() || !fileSource.isFile()) { logger.debug("源文件[" + strSourceFileName + "],不存在或是文件夹!"); return false; } // 如果目标文件夹不存在 if (!fileDest.isDirectory() || !fileDest.exists()) { if (!fileDest.mkdirs()) { logger.debug("目录文件夹不存,在创建目标文件夹时失败!"); return false; } } try { String strAbsFilename = strDestDir + File.separator + fileSource.getName(); FileInputStream fileInput = new FileInputStream(strSourceFileName); FileOutputStream fileOutput = new FileOutputStream(strAbsFilename); logger.debug("开始拷贝文件:"); int count = -1; long nWriteSize = 0; long nFileSize = fileSource.length(); byte[] data = new byte[BUFFER]; while (-1 != (count = fileInput.read(data, 0, BUFFER))) { fileOutput.write(data, 0, count); nWriteSize += count; long size = (nWriteSize * 100) / nFileSize; long t = nWriteSize; String msg = null; if (size <= 100 && size >= 0) { msg = "\r拷贝文件进度: " + size + "% \t" + "\t 已拷贝: " + t; logger.debug(msg); } else if (size > 100) { msg = "\r拷贝文件进度: " + 100 + "% \t" + "\t 已拷贝: " + t; logger.debug(msg); } } fileInput.close(); fileOutput.close(); logger.debug("拷贝文件成功!"); return true; } catch (Exception e) { logger.debug("异常信息:["); logger.error(e); logger.debug("]"); return false; } } /** * 删除指定的文件 * * @param strFileName * 指定绝对路径的文件名 * @return 如果删除成功true否则false */ public boolean delete(String strFileName) { File fileDelete = new File(strFileName); if (!fileDelete.exists() || !fileDelete.isFile()) { logger.debug("错误: " + strFileName + "不存在!"); return false; } return fileDelete.delete(); } /** * 移动文件(只能移动文件) * * @param strSourceFileName * 是指定的文件全路径名 * @param strDestDir * 移动到指定的文件夹中 * @return 如果成功true; 否则false */ public boolean moveFile(String strSourceFileName, String strDestDir) { if (copyTo(strSourceFileName, strDestDir)) return this.delete(strSourceFileName); else return false; } /** * 创建文件夹 * * @param strDir * 要创建的文件夹名称 * @return 如果成功true;否则false */ public boolean makedir(String strDir) { File fileNew = new File(strDir); if (!fileNew.exists()) { logger.debug("文件夹不存在--创建文件夹"); return fileNew.mkdirs(); } else { logger.debug("文件夹存在"); return true; } } /** * 删除文件夹 * * @param strDir * 要删除的文件夹名称 * @return 如果成功true;否则false */ public boolean rmdir(String strDir) { File rmDir = new File(strDir); if (rmDir.isDirectory() && rmDir.exists()) { String[] fileList = rmDir.list(); for (int i = 0; i < fileList.length; i++) { String subFile = strDir + File.separator + fileList[i]; File tmp = new File(subFile); if (tmp.isFile()) tmp.delete(); else if (tmp.isDirectory()) rmdir(subFile); else { logger.debug("error!"); } } rmDir.delete(); } else return false; return true; } }
相关推荐
文件操作工具类,包含生成保存,复制,删除,读取,获取文件名,获取文件列表等等,只有你想不到,没有你找不到的Android端工具类,复制到项目中可直接使用
"C++文件操作工具类"是一个专门为C++开发者设计的实用工具,它简化了对文件进行读写、创建、删除等操作的过程。 首先,我们要理解C++中的文件操作基本概念。C++通过标准库中的`fstream`头文件提供了一套接口,允许...
java文件操作工具类是java中针对文件操作的一个工具类,可以方便的读取,下载,上传文件等操作,希望可以帮到大家。
此工具类只用于Java后端在操作Properties文件的时候写的工具类,方便properties文件的存取操作
集成创建文件,创建目录,删除单个文件,删除单个目录,删除文件夹里内容,复制文件,复制文件夹,剪切文件,剪切文件夹等操作方法. 特上传分享
java 文件操作工具类
本篇将详细讲解一个基于Java的Excel文件操作工具类,它具备读取、写入以及合并Excel文件等多种功能。 首先,让我们了解一下这个工具类的核心功能: 1. **读取Excel文件**: 工具类提供了一个方法来读取Excel文件...
file文件操作工具类,可以处理所有文件相关的操作,快速开发文件处理模块
C# .net 文件操作工具类
Android文件操作工具类FileUtil详解 在Android开发中,文件操作是非常重要的一部分,涵盖了文件的获取、遍历、搜索、复制、删除、判断等多种功能。为了方便开发者更好地进行文件操作,今天我们将详细介绍Android...
文件操作工具类,包含判断文件编码适合windows和linux,文件压缩打包,判断文件格式,拷贝文件等内容
文件操作工具类,支持文件上传和下载及断点续传
java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...
javaio文件操作工具类,集成小部分对目录操作的方法,平时工作中学习中总结的部分方法方便大家使用~不妥之处望大家指教谢谢~!