比较两个文件夹下文件的数量,名称和大小?谢谢!:)
解决方案 »
- 如何用java调用外部程序播放一个视频?
- 关于SWT Combo自绘的问题
- java中如何获取鼠标实时坐标 在线等待
- 求一段读出excel2007然后在输出到excel2007的java代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 问个问题
- [邀请]加入Java憩园作者群
- 请问有那位高人用过Java Advanced Imaging (JAI) API?
- 一个实现了Runnable接口的类中还有其它方法的执行问题,请教
- 有关Java Swing的图形界面编程的问题,高手请进!
- JCreator中第一个例子,帮我看看!来者有分!
- 请教一个关于接口的问题
- 请教:有没有什么比较好的方法,可以实现一个文件同时上传到多个服务器?
package test;import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Arrays;import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileOutputStream;
import hz365.JDBCConnInfo;/**
* 检查2个文件夹下的文件是否一样(数量,名称,大小),定时自动检查 1.检查文件的总数是否一致 2.检查文件的名称是否一致
* 3.检查相同名称的文件大小是否一致
*
* @author echo
*
*/
public class FileTest { public String testFile(File file1, File file2) {
String path1 = "";
String path2 = "";
String msg = "";
path1 = file1.getPath();
path2 = file2.getPath(); if (file1.isDirectory()) {
if (file2.isDirectory()) {
String[] fileList1 = file1.list();
String[] fileList2 = file2.list();
boolean flag = false; if (fileList1.length != fileList2.length) {
msg = path1 + "和" + path2 + "这2个文件夹下的文件数目不一致!" + "\n";
// System.out.print(msg);
} else {
flag = Arrays.equals(fileList1, fileList2);// 判断各个文件名称是否一致,完全一致的话为true,不一致为false
// Arrays.sort(fileList1);//对文件名称进行排序
if (!flag) {
msg = path1 + "和" + path2 + "存在不一样的文件" + "\n";
// System.out.print(msg);
} else {// 判断一样文件名称的文件大小是否相同
for (int i = 0; i < fileList1.length; i++) {
File file3 = new File(path1 + "\\" + fileList1[i]);
File file4 = new File(path2 + "\\" + fileList2[i]);
if (file3.isFile()) {// file3是文件的话,file4也必然是文件
if (file3.length() != file4.length()) {
msg = file3 + "和" + file4 + "这2个文件大小不一样"+ "\n";
// System.out.print(msg);
// sendSms("13817318125", msg, "80", 0);
}
} else {// 如果file3和file4这一层是文件夹的话,就对这一层的文件夹再进行检查
testFile(file3, file4);
}
}
}
}
} else {
msg = path2 + "is not a directory!!" +"\n" ; }
} else {
msg = path1 + "is not a directory!!" +"\n" ;
// System.out.print(msg);
}
return msg;
}
}