package utils;
import java.io.File;
import java.io.IOException;
public class FileUtil {
public static void main(String[] args) {
createDir("C:/Documents and Settings/Administrator/桌面/product/workloadStats");
}
public static boolean createDir(String destDirName) {
File dir = new File(destDirName);
if(dir.exists()) {
System.out.println("创建目录" + destDirName + "失败,目标目录已存在!");
return false;
}
if(!destDirName.endsWith(File.separator))
destDirName = destDirName + File.separator;
// 创建单个目录
if(dir.mkdirs()) {
System.out.println("创建目录" + destDirName + "成功!");
return true;
} else {
System.out.println("创建目录" + destDirName + "失败!");
return false;
}
}
public static boolean createFile(String destFileName) {
File file = new File(destFileName);
if (file.exists()) {
System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
return false;
}
if (destFileName.endsWith(File.separator)) {
System.out.println("创建单个文件" + destFileName + "失败,目标不能是目录!");
return false;
}
if (!file.getParentFile().exists()) {
System.out.println("目标文件所在路径不存在,准备创建。。。");
if (!file.getParentFile().mkdirs()) {
System.out.println("创建目录文件所在的目录失败!");
return false;
}
}
// 创建目标文件
try {
if (file.createNewFile()) {
System.out.println("创建单个文件" + destFileName + "成功!");
return true;
} else {
System.out.println("创建单个文件" + destFileName + "失败!");
return false;
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("创建单个文件" + destFileName + "失败!");
return false;
}
}
public static boolean deleteFile(String destFileName) {
File file = new File(destFileName);
return file.delete();
}
public static boolean deletefile(File f)
{
if (f.isFile())
f.delete();
return true;
}
public static boolean deletedir(File f){
if(f.isDirectory())
{
File[] files = f.listFiles();
for(int i=0;i<files.length;i++)
{
if(files[i].isDirectory()) deletedir(files[i]);
else deletefile(files[i]);
}
}
f.delete();
return true;
}
/**
* 将delete目录下与standard目录下相同的文件移到delete目录下的deletedFile中
*/
public static boolean compareDir(File delete, File standard) {
System.out.println("..........开始处理..........");
int count = 0;
File deletedFileDir = new File(delete.getAbsolutePath()
+ File.separator + "deletedFile");
deletedFileDir.mkdirs();
class MyFileFilter implements FileFilter {
public boolean accept(File file) {
if (file.isDirectory())
return false;
return true;
}
}
File[] files1 = standard.listFiles(new MyFileFilter());
File[] files2 = delete.listFiles(new MyFileFilter());
System.out.println("基准目录中的文件个数=" + files1.length);
System.out.println("处理目录中的文件个数=" + files2.length);
for (int i = 0, len1 = files1.length; i < len1; i++) {
File f1 = files1[i];
for (int j = 0, len2 = files2.length; j < len2; j++) {
File f2 = files2[j];
if (f1.isFile() && f2.isFile()
&& f1.getName().equals(f2.getName())) {
try {
InputStream in = new BufferedInputStream(
new FileInputStream(f2));
File deletedFile = new File(deletedFileDir
.getAbsolutePath()
+ File.separator + f2.getName());
System.out.println(deletedFile.getAbsolutePath());
count++;
if (deletedFile.createNewFile()) {
OutputStream out = new BufferedOutputStream(
new FileOutputStream(deletedFile));
byte[] buffer = new byte[1024];
int byteread;
while ((byteread = in.read(buffer)) != -1) {
out.write(buffer, 0, byteread);
}
out.close();
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
f2.delete();
}
}
}
System.out.println("..........处理完毕..........");
System.out.println("一共移动" + count + "个文件");
return true;
}
}