Java文件操作工具
2015-02-05 00:00
183 查看
摘要: 移动目录或者文件, 将一个文件夹下所有文件移动到另一个文件夹下,将指定文件移动到目的目录,刪除指定目录和其下所有子目录和文件,如果指定的是文件则直接删除
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; /** * * @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; } /** * * @Function : unzipFile * @Desc : 解压指定的zip压缩文件到指定的目的目录 * @Author : 王鸿运 * @param zipFilePath * @param destDirPath * @return */ @SuppressWarnings("unchecked") public static boolean unzipFile(String zipFilePath, String destDirPath){ File srcFile = new File(zipFilePath); if (!srcFile.exists() || srcFile.isDirectory()) { return false; } File destDir = new File(destDirPath); if (!destDir.exists()) { destDir.mkdirs(); } else if (destDir.isFile()) { return false; } ZipFile zipFile = null; try { zipFile = new ZipFile(srcFile); Enumeration<ZipEntry> zipEntries = (Enumeration<ZipEntry>) zipFile.entries(); while(zipEntries.hasMoreElements()){ ZipEntry zipEntry = zipEntries.nextElement(); if (zipEntry.isDirectory()) { String entryName = zipEntry.getName(); File tmpFile = new File(destDirPath + FILE_SEP + entryName); if (!tmpFile.exists()) { tmpFile.mkdirs(); } } else { System.err.println(zipEntry.getName()); InputStream input = zipFile.getInputStream(zipEntry); String entryName = zipEntry.getName(); OutputStream output = new FileOutputStream(new File(destDirPath + FILE_SEP + entryName)); streamCopy(input, output); } } } catch (IOException e) { e.printStackTrace(); return false; } return true; } /** * @Function : streamCopy * @Desc : 流复制 * @Author : 王鸿运 * @param input InputStream 输入流 * @param output OutputStream 输出流 * @return long 流长度 * @throws IOException */ public static long streamCopy(final InputStream input, final OutputStream output) throws IOException { final byte[] buffer = new byte[8192]; int n = 0; long count=0; while (-1 != (n = input.read(buffer))) { output.write(buffer, 0, n); count += n; } return count; } }
相关文章推荐
- Java的IO操作(四) - SequenceInputStream类,实例:一个文件分割、合并工具
- Java的IO操作(四) - SequenceInputStream类,实例:一个文件分割、合并工具
- java 实现 文件操作工具集。包括文件、目录树的拷贝、删除、移动、查找等工具函数
- java文件操作工具类分享(file文件工具类)
- Java文件操作增强工具
- Java的IO操作(四) - SequenceInputStream类,实例:一个文件分割、合并工具
- Java文件IO操作工具类(复制、删除、重命名、创建路径),复制代码并创建FileControl类即可使用。
- 纯Java文件操作工具,支持文件、文件夹的复制、删除、移动
- java 文件操作工具类
- 纯Java文件操作工具,支持文件、文件夹的复制、删除、移动
- Java 文件操作工具类(未测试)
- Java操作属性文件之工具类
- 纯Java文件操作工具,支持文件、文件夹的复制、删除、移动
- Java 文件操作工具类(Android 适用)
- 【Android】文件操作工具类(FileUtil.java)
- ( 转载)纯Java文件操作工具,支持文件、文件夹的复制、删除、移动
- Java文件操作增强工具
- Java中对文件的操作
- Java文件操作大全(赛迪网)
- JAVA读取XML文件并利用该文件对数据库进行配置操作