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;
}
}
分享到:
相关推荐
在我写作《自己动手写操作系统》的时候,并没有想过今天会有一个第二版。原因在于,我希望这本书是用来填补空白的,而不是重复去做别人已经做得很好的事情。所谓填补空白,具体说就是让像我一样的操作系统爱好者在...
在我写作《自己动手写操作系统》的时候,并没有想过今天会有一个第二版。原因在于,我希望这本书是用来填补空白的,而不是重复去做别人已经做得很好的事情。所谓填补空白,具体说就是让像我一样的操作系统爱好者在...
Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh...
标题中的“我的文件_wbat和NortonUtilities”表明这是一个包含两个特定程序的文件集合,一个是名为“wbat”的DOS程序,另一个是“Norton Utilities 8.0”。描述进一步解释了这些文件的用途和现状,指出它们主要用于...
- GNU项目是由Richard Stallman发起的一个旨在创建一套完全自由的类Unix操作系统的计划,其目标是创建一个名为GNU的操作系统。 - **Linux与GNU的关系**: - GNU提供了大量自由软件,这些软件与Linux内核结合,...
在IT领域,Windows XP图标是操作系统用户界面的重要组成部分,它们为用户提供了一种视觉上的标识,以便快速识别和操作各种程序、文件和系统设置。Windows XP是微软公司在2001年发布的一款经典操作系统,它的图标设计...
综上所述,“XP优化文件”是一个针对Windows XP系统的优化集合,通过清理、调整和修复,旨在提高系统的运行效率和用户体验。不过,由于XP系统已过时,用户应考虑升级到更现代的操作系统以获取更好的安全性和性能。
后面是IDE设备的类型和硬件参数,TYPE用来说明硬盘设备的类型,我们可以选择AUTO、USER、NONE的工作模式,AUTO是由系统自己检测硬盘类型,在系统中存储了1-45类硬盘参数,在使用该设置值时不必再设置其它参数;...
标题中的“2012MaxDOS备份还原工具.rar”是一个压缩文件,它包含了一个名为“2012MaxDOS备份还原工具”的程序。这个工具主要用于计算机系统的备份与还原操作,尤其适用于Windows操作系统。MaxDOS是一款基于DOS的系统...
《超级兔子清理王08年11月份》是一款在2008年11月发布的系统优化工具,专为用户提供注册表清理和垃圾文件清理功能。这款软件在当时深受用户欢迎,因为它能够帮助用户安全有效地维护电脑的健康状态,提高系统运行效率...
7.支持近三天、近一个月、阅读次数、日期视图、问答学习等来复习收藏的资料为自己的知识 8.支持用Word来收集网页,这是PinPKM 的独门武功 9.知识库的容量仅受硬盘大小限制,采用分散文档保存来确保文档不受损 10....
- 文件系统:如`/proc`是一个虚拟目录,以文件形式访问内存数据。 - 虚拟内存:Linux在需要时才会使用,不同于Windows开机即使用。 - `diff –ruNa`:比较两个文件的差异。 - `history`:查看历史命令记录,`!`可以...
这份文档包含了2021年大学计算机基础课程的试题及答案,主要涵盖了计算机系统的组成、软件类型、数据编码、内存管理、输入/输出设备、计算机网络传输速率、操作系统概念、文件系统、Windows操作系统操作以及Word的...
标题《大学计算机基础期末知识点整理》暗示了本文档内容为大学计算机基础课程的期末复习资料。由于文档内容部分凌乱且包含了OCR识别错误,需要我们通过已有信息梳理出计算机基础的知识点。 首先,知识点涵盖了...
根据文件内容,这是一份关于计算机基础知识的考试题及答案,涉及到计算机的硬件知识、软件知识以及计算机的发展历程等多个方面。下面,我们将对这些知识点进行详细说明。 一、计算机硬件部分 1.计算机硬件基础知识...
程序设计是一个从问题分析到编写、测试和文档整理的过程。编程语言分为机器语言、汇编语言和高级语言,如C语言是一种面向过程的编程语言,而C++和Java则支持面向对象编程,分别具备不同的特性和优势。Visual Basic...
7.支持近三天、近一个月、阅读次数、日期视图、问答学习等来复习收藏的资料为自己的知识 8.支持用Word来收集网页,这是PinPKM 的独门武功 9.知识库的容量仅受硬盘大小限制,采用分散文档保存来确保文档不受损 10....
17. **IP地址分类**:IP地址95.251.220.10属于A类地址,其前三个八位组是网络标识,最后一个八位组是主机标识。 18. **数据库系统特点**:数据库系统具有数据共享性好、数据独立性高、数据结构化程度高的特点。 19...
1. **ASCII码表:** ASCII码用于表示标准的英文字符,每个字符都有一个唯一的7位或8位二进制编码。 - **字符A的ASCII码:** 字符A的ASCII码为01000001B,即十进制的65。 - **ASCII码规则:** 大写字母A-Z的ASCII码...