随笔-193  评论-715  文章-1  trackbacks-0
昨天晚上实在太无聊了,想着自己的移动硬盘和公司的电脑里面资料有很多不“同步”,要是删掉移动硬盘里面的文件然后再把所有的文件COPY一次的话,估计得几个小时,USB的速度毕竟还慢,而且没有必要都COPY,从时间和性能上都很不划算。

怎么办?

写个程序吧来解决吧(很多时候我总想着用程序来解决问题)。

程序很简单,仅满足我现在的基本功能,将比较的结果打印成清单。如果你也有同想的需求,你可以免费使用她,我可能会在将来的时间里做成图形化的界面,目前会JAVA的人都可以使用。

暂定版本为 文件比较器 V0.1。源程序如下:
 1import java.io.*;
 2
 3/*
 4作者:张明星
 5时间:2006.3.12.
 6*/

 7public class FileCompare {
 8
 9    public FileCompare(String pathName,String destPathName){
10        this.compare(pathName,destPathName);
11    }

12    
13    public void compare(String pathName,String destPathName){
14        try{
15        File file=new File(pathName);
16        
17        String fileAbsolutePath=file.getAbsolutePath();
18        
19        String []fileList=file.list();
20        for(int i=0;i<fileList.length;i++){
21            File tempFile=new File(fileAbsolutePath,fileList[i]);
22            if(tempFile.isDirectory()){
23            File tempFile1=new File(destPathName+tempFile.getAbsolutePath().substring(pathName.length()));
24            if(!tempFile1.exists())
25                //tempFile1.mkdir();//可建立此目录
26                System.out.println(tempFile1.getAbsolutePath()+",此文件目录不存在。");
27            this.compare(tempFile.getAbsolutePath(),destPathName+tempFile.getAbsolutePath().substring(pathName.length()));
28            }

29            else if(tempFile.isFile()){
30                File tempFile2=new File(destPathName+tempFile.getAbsolutePath().substring(pathName.length()));
31                if(!tempFile2.exists())
32                    System.out.println(tempFile.getAbsolutePath()+",目标文件夹中无此文件。");
33            }

34            else {
35                System.out.println("Error");
36            }

37        }

38        }

39        catch(Exception e){
40            e.printStackTrace();
41        }

42    }

43    public static void main(String[] args) {
               //第一个参数为源目录,第二个参数为目标目录。
44        new FileCompare("D:\\software","L:\\software");
45        System.exit(0);
46    }

47
48}

49

同时也欢迎大家拍砖和交流:
MSN:fastzch@hotmail.com
posted on 2006-03-12 11:20 Robin's Programming World 阅读(1905) 评论(6)  编辑  收藏 所属分类: Java

评论:
# re: 文件比较器V0.1版 2006-03-12 17:14 | thinkbase
有一个叫做 JFileSync 的东东可以满足你的需求, 而且功能比较强大  回复  更多评论
  
# re: 文件比较器V0.1版 2006-03-13 10:07 | Robin's Java World
这东东的确不错,谢谢!
有空来研究一下其源码。  回复  更多评论
  
# re: 文件比较器V0.1版 2006-03-13 10:24 | guest
直接用xcopy命令就可以搞定了,我就xcopy来同步笔记本和台式机资料的。  回复  更多评论
  
# re: 文件比较器V0.1版 2006-03-13 10:27 | guest
xcopy d:\src e:\dest /H /R /D /E  回复  更多评论
  
# re: 文件比较器V0.1版 2006-03-13 18:27 | calvin
以后此类小程序代码请勿放在blogjava首页,谢谢:)  回复  更多评论
  
# re: 文件比较器V0.1版 2006-03-14 16:10 | Robin's Java World
XCOPY的确不错,不过我如果某些部分不想要的话就不好办了。
我已经把JFileSync这个东东打好包了,做成了个窗口图形程序,不过公司的网络过滤太严,不太好上传,改天找个机会传上去吧。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: