日期:2014-05-20  浏览次数:20796 次

JAVA语言比较两个文件夹中文件,将不同得文件下传.应该如何比较判断呢? (100分求解,绝对结贴)
如果我希望比较服务器和客户端两个文件夹内的文件,将服务器有而客户端没有的文件下传至客户端文件夹内,使两个文件夹内容保持相同一致~
      如果我打算实现上述功能,大概思路使什么?该调用什么函数么?

------解决方案--------------------
这个思路应该比较简单啊,就是一个同步机制嘛。
首先使用java.io.包中的文件访问相关类(File/Directory)获取文件夹和文件列表数据,并自定义一个格式,通过socket传回到客户端(简单的办法可以借用web服务器使用Servlet搞定),然后客户端比较本地文件夹和文件,将要下载的文件列表及全路径传会服务器,循环获得服务器上文件。这里可以将服务器文件时间和大小取得,并和本地文件逐一对比,然后选择覆盖本地文件的方式完成同步。
------解决方案--------------------
private int contrastFile(File sourceFile,File targetFile){
log.debug( "进行文件比较,源文件: "+sourceFile+ "目标文件: "+targetFile);
if( sourceFile.isFile()&&targetFile.isFile()
&&sourceFile.getName().equalsIgnoreCase(targetFile.getName())//比文件名
&&sourceFile.length()==targetFile.length()//比长度
&&sourceFile.lastModified()==targetFile.lastModified()){//比修改日期.
return ;
}

比完了根据结果copy文件.
------解决方案--------------------
首先比较文件名,文件名一样的话再比较文件时间,服务器更新的话在覆盖掉客户端文件。