`
黑暗浪子
  • 浏览: 507661 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

今天整理硬盘时候发现一个自己三年前写的文件操作类

F# 
阅读更多
package util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;

public class FileUtil {
	private final static String FILE_SUFFIX = ".java.drl";

	private final static String FILE_TEMP = "C:/temp/";

	/**
	 * 将已存在的drl文件删除
	 * 
	 * @param ObjectPath
	 */
	public static void deleteExistedDRLFile(String ObjectPath) {
		File filePath = new File(ObjectPath);
		if (!filePath.exists()) {
			System.out.println("目录不存在!");
		} else {
			if (filePath.isDirectory()) {
				File[] list = filePath.listFiles(new FilenameFilter() {
					public boolean accept(File dir, String name) {
						return name.endsWith(FILE_SUFFIX);
					}
				});
				for (int i = 0; i < list.length; i++) {
					list[i].delete();
				}
			}
		}
	}

	/**
	 * 创建文件夹,如果有则不创建
	 * 
	 * @param ObjectPath
	 */
	public static boolean creareDirectory(String ObjectPath) {
		boolean flag = true;

		File filePath = new File(ObjectPath);
		if (!filePath.exists()) {
			filePath.mkdir();
			flag = false;
		}

		return flag;
	}

	/**
	 * 查看某文件夹下面是否有文件,有文件则创建一个temp文件夹,将文件拷贝到temp目录下(备份文件) 没有文件怎什么都不做
	 * 备份后,把原文件夹里文件删除
	 * 
	 * @param ObjectPath
	 */
	public static void backupFile(String ObjectPath, String dirName) {
		String backupPath;

		if (!FILE_TEMP.endsWith(File.separator)) {
			backupPath = FILE_TEMP + File.separator + dirName;
		} else {
			backupPath = FILE_TEMP + dirName;
		}

		File backupFilePath = new File(backupPath);
		if (!backupFilePath.exists()) {
			backupFilePath.mkdirs();
		}
		File filePath = new File(ObjectPath);
		if (!filePath.exists()) {
			System.out.println("目录不存在!");
		} else {
			if (filePath.isDirectory()) {
				File[] list = filePath.listFiles();
				if (list != null && list.length != 0) {
					copyFolder(ObjectPath, backupPath);// 文件备份
					for (int i = 0; i < list.length; i++) {
						list[i].delete();
					}
				}
			}
		}
	}

	/**
	 * 复原文件,把文件从备份文件夹拷贝到原来文件夹
	 * 
	 * @param ObjectPath
	 * @param dirName
	 */
	public static void recoverFile(String ObjectPath, String dirName) {
		String backupPath;
		if (ObjectPath.endsWith(File.separator)) {
			ObjectPath = new StringBuffer(ObjectPath).append(dirName)
					.toString();
		} else {
			ObjectPath = new StringBuffer(ObjectPath)
					.append(File.separatorChar).append(dirName).toString();
		}

		if (!FILE_TEMP.endsWith(File.separator)) {
			backupPath = FILE_TEMP + File.separator + dirName;
		} else {
			backupPath = FILE_TEMP + dirName;
		}
		File backupFilePath = new File(backupPath);
		if (!backupFilePath.exists()) {
			backupFilePath.mkdirs();
		}
		File filePath = new File(ObjectPath);
		if (!filePath.exists()) {
			System.out.println("目录不存在!");
		} else {
			if (filePath.isDirectory()) {
				File[] list = filePath.listFiles();
				if (list != null && list.length != 0) {
					copyFolder(backupPath, ObjectPath);// 文件复原
				}
			}
		}
	}

	/**
	 * 复制整个文件夹内容
	 * 
	 * @param oldPath
	 *            String 原文件路径 如:c:/fqf
	 * @param newPath
	 *            String 复制后路径 如:f:/fqf/ff
	 * @return boolean
	 */
	public static void copyFolder(String oldPath, String newPath) {
		try {
			(new File(newPath)).mkdir(); // 如果文件夹不存在 则建立新文件夹
			File a = new File(oldPath);
			String[] file = a.list();
			File temp = null;
			for (int i = 0; i < file.length; i++) {
				if (oldPath.endsWith(File.separator)) {
					temp = new File(oldPath + file[i]);
				} else {
					temp = new File(oldPath + File.separator + file[i]);
				}

				if (temp.isFile()) {
					FileInputStream input = new FileInputStream(temp);
					FileOutputStream output = new FileOutputStream(newPath
							+ "/" + (temp.getName()).toString());

					byte[] b = new byte[1024 * 5];
					int len;
					while ((len = input.read(b)) != -1) {
						output.write(b, 0, len);
					}
					output.flush();
					output.close();
					input.close();
				}
				if (temp.isDirectory()) {// 如果是子文件夹
					copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);
				}
			}
		} catch (Exception e) {
			System.out.println("复制整个文件夹内容操作出错");
			e.printStackTrace();
		}
	}

	/**
	 * 删除备份文件和存放备份文件的文件夹
	 * 
	 * @param ObjectPath
	 */
	public static void deleteFileAndDirectory(String dirName) {
		String ObjectPath;
		if (!FILE_TEMP.endsWith(File.separator)) {
			ObjectPath = FILE_TEMP + File.separator + dirName;
		} else {
			ObjectPath = FILE_TEMP + dirName;
		}

		File filePath = new File(ObjectPath);
		if (!filePath.exists()) {
			filePath.mkdirs();
			System.out.println("目录不存在!");
		} else {
			if (filePath.isDirectory()) {
				File[] list = filePath.listFiles();

				for (int i = 0; i < list.length; i++) {
					list[i].delete();
				}
			}
			filePath.delete();
		}
	}

	/**
	 * 判断某文件夹下是否存在文件,存在返回true
	 * 
	 * @param ObjectPath
	 * @return
	 */
	public static boolean existFileInDirectory(String ObjectPath) {
		boolean flag = false;
		File filePath = new File(ObjectPath);
		if (filePath.exists()) {

			if (filePath.isDirectory()) {
				File[] list = filePath.listFiles();
				if (list != null && list.length != 0) {
					flag = true;
				}
			}
		}

		return flag;
	}

	/**
	 * 删除某个文件夹
	 * @param ObjectPath
	 */
	public static void deleteDirectory(String ObjectPath) {

		File filePath = new File(ObjectPath);
		if (filePath.exists()) {
			filePath.delete();
		}
	}
	/**
	 * 将已存在的文件删除
	 * 
	 * @param ObjectPath
	 */
	public static boolean deleteExistedFile(String ObjectPath,final String fileName) {
		boolean flag =false;
		File filePath = new File(ObjectPath);
		if (filePath.exists()) {			
			if (filePath.isDirectory()) {
				File[] list = filePath.listFiles(new FilenameFilter() {
					public boolean accept(File dir, String name) {
						return name.equals(fileName);
					}
				});
				for (int i = 0; i < list.length; i++) {
					list[i].delete();
				}
				flag=true;
			}
		}
		
		return flag;
	}
}
 
3
2
分享到:
评论
2 楼 黑暗浪子 2010-12-15  
kyfxbl 写道
这破玩意弄上来干什么

你这破玩意到我这里来干啥?犯贱?
1 楼 kyfxbl 2010-12-15  
这破玩意弄上来干什么

相关推荐

    自己动手写操作系统(含源代码).part2

    在我写作《自己动手写操作系统》的时候,并没有想过今天会有一个第二版。原因在于,我希望这本书是用来填补空白的,而不是重复去做别人已经做得很好的事情。所谓填补空白,具体说就是让像我一样的操作系统爱好者在...

    自己动手写操作系统(含源代码).part1

    在我写作《自己动手写操作系统》的时候,并没有想过今天会有一个第二版。原因在于,我希望这本书是用来填补空白的,而不是重复去做别人已经做得很好的事情。所谓填补空白,具体说就是让像我一样的操作系统爱好者在...

    网管教程 从入门到精通软件篇.txt

    Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh...

    我的文件_wbat和NortonUtilities

    标题中的“我的文件_wbat和NortonUtilities”表明这是一个包含两个特定程序的文件集合,一个是名为“wbat”的DOS程序,另一个是“Norton Utilities 8.0”。描述进一步解释了这些文件的用途和现状,指出它们主要用于...

    linux知识点整理.pdf

    - GNU项目是由Richard Stallman发起的一个旨在创建一套完全自由的类Unix操作系统的计划,其目标是创建一个名为GNU的操作系统。 - **Linux与GNU的关系**: - GNU提供了大量自由软件,这些软件与Linux内核结合,...

    WindowsXP图标整理

    在IT领域,Windows XP图标是操作系统用户界面的重要组成部分,它们为用户提供了一种视觉上的标识,以便快速识别和操作各种程序、文件和系统设置。Windows XP是微软公司在2001年发布的一款经典操作系统,它的图标设计...

    XP优化文件

    综上所述,“XP优化文件”是一个针对Windows XP系统的优化集合,通过清理、调整和修复,旨在提高系统的运行效率和用户体验。不过,由于XP系统已过时,用户应考虑升级到更现代的操作系统以获取更好的安全性和性能。

    计算机应用技术(实用手册)

    后面是IDE设备的类型和硬件参数,TYPE用来说明硬盘设备的类型,我们可以选择AUTO、USER、NONE的工作模式,AUTO是由系统自己检测硬盘类型,在系统中存储了1-45类硬盘参数,在使用该设置值时不必再设置其它参数;...

    2012MaxDOS备份还原工具.rar

    标题中的“2012MaxDOS备份还原工具.rar”是一个压缩文件,它包含了一个名为“2012MaxDOS备份还原工具”的程序。这个工具主要用于计算机系统的备份与还原操作,尤其适用于Windows操作系统。MaxDOS是一款基于DOS的系统...

    超级兔子清理王08年11月份

    《超级兔子清理王08年11月份》是一款在2008年11月发布的系统优化工具,专为用户提供注册表清理和垃圾文件清理功能。这款软件在当时深受用户欢迎,因为它能够帮助用户安全有效地维护电脑的健康状态,提高系统运行效率...

    PinPKM-V201525(官网发布的最后一个免费无使用限制版本)

    7.支持近三天、近一个月、阅读次数、日期视图、问答学习等来复习收藏的资料为自己的知识 8.支持用Word来收集网页,这是PinPKM 的独门武功 9.知识库的容量仅受硬盘大小限制,采用分散文档保存来确保文档不受损 10....

    Linux笔记[整理].pdf

    - 文件系统:如`/proc`是一个虚拟目录,以文件形式访问内存数据。 - 虚拟内存:Linux在需要时才会使用,不同于Windows开机即使用。 - `diff –ruNa`:比较两个文件的差异。 - `history`:查看历史命令记录,`!`可以...

    大学计算机基础试题及答案【2021年整理】.docx

    这份文档包含了2021年大学计算机基础课程的试题及答案,主要涵盖了计算机系统的组成、软件类型、数据编码、内存管理、输入/输出设备、计算机网络传输速率、操作系统概念、文件系统、Windows操作系统操作以及Word的...

    大学计算机基础期末知识点整理.pdf

    标题《大学计算机基础期末知识点整理》暗示了本文档内容为大学计算机基础课程的期末复习资料。由于文档内容部分凌乱且包含了OCR识别错误,需要我们通过已有信息梳理出计算机基础的知识点。 首先,知识点涵盖了...

    【2019年整理】电大计算机网考试题及答案很全的.pdf

    根据文件内容,这是一份关于计算机基础知识的考试题及答案,涉及到计算机的硬件知识、软件知识以及计算机的发展历程等多个方面。下面,我们将对这些知识点进行详细说明。 一、计算机硬件部分 1.计算机硬件基础知识...

    精品资料(2021-2022年收藏)计算机基础试题整理版超级全面.doc

    程序设计是一个从问题分析到编写、测试和文档整理的过程。编程语言分为机器语言、汇编语言和高级语言,如C语言是一种面向过程的编程语言,而C++和Java则支持面向对象编程,分别具备不同的特性和优势。Visual Basic...

    针式PinPKM-V201506(免费无使用限制)

    7.支持近三天、近一个月、阅读次数、日期视图、问答学习等来复习收藏的资料为自己的知识 8.支持用Word来收集网页,这是PinPKM 的独门武功 9.知识库的容量仅受硬盘大小限制,采用分散文档保存来确保文档不受损 10....

    模拟盘选择题(20081209).doc

    17. **IP地址分类**:IP地址95.251.220.10属于A类地址,其前三个八位组是网络标识,最后一个八位组是主机标识。 18. **数据库系统特点**:数据库系统具有数据共享性好、数据独立性高、数据结构化程度高的特点。 19...

    2012年上半年全国计算机一级B理论题库(最新整理)

    1. **ASCII码表:** ASCII码用于表示标准的英文字符,每个字符都有一个唯一的7位或8位二进制编码。 - **字符A的ASCII码:** 字符A的ASCII码为01000001B,即十进制的65。 - **ASCII码规则:** 大写字母A-Z的ASCII码...

Global site tag (gtag.js) - Google Analytics