java判断文件是否相同_java 判断两个文件是否相同

//                buttonPane.setColor.red);< /font>

GridBagConstraints gbc_buttonPane = new GridBagConstraints();

gbc_buttonPane.fill = GridBagConstraints.HORIZONTAL;

gbc_buttonPane.insets = new Insets(0, 0, 5, 5);

gbc_buttonPane.gridx = 2;

gbc_buttonPane.gridy = 2;

mainPane.add(buttonPane, gbc_buttonPane);

createmd5Button = new JButton("create md5");

checkmd5Btn = new JButton("check");

checkmd5Btn.setEnabled(false);

buttonPane.add(createmd5Button);

buttonPane.add(checkmd5Btn);

createmd5Button.addActionListener(new ActionListener()

{

@Override

public void actionPerformed(ActionEvent e)

{

if (!validate3(true))

{

return;

}

sourceFileTF.setEditable(false);

new Thread(new Runnable()

{

@Override

public void run()

{

createmd5Button.setEnabled(false);

size_of_file = srcfile.length();

result = SystemUtil.getFileMD5(srcfile);

checkmd5Btn.setEnabled(true);

createmd5Button.setEnabled(true);

}

}).start();

}

});

checkmd5Btn.addActionListener(new ActionListener()

{

@Override

public void actionPerformed(ActionEvent e)

{

//                                if (!validate3(true))

//                                {

//                                        return;

//                                }

long size_of_file2 = srcfile.length();

if (size_of_file2 != size_of_file)

{

System.out.println("by size");

GUIUtil23.errorDialog(MESG_DIFF);

return;

}

new Thread(new Runnable()

{

@Override

public void run()

{

checkmd5Btn.setEnabled(false);

String result2;

sourceFileTF.setEditable(true);

result2 = SystemUtil.getFileMD5(srcfile);

boolean isSame2=isSame(result2, result);

checkmd5Btn.setEnabled(true);

if (isSame2)

{

GUIUtil23.infoDialog(MESG_SAME);

}

else

{

GUIUtil23.errorDialog(MESG_DIFF);

}

}

}).start();

}

});

JLabel targetLabel = new JLabel("target file");

GridBagConstraints gbc_driveClassLabel = new GridBagConstraints();

gbc_driveClassLabel.anchor = GridBagConstraints.WEST;

gbc_driveClassLabel.insets = new Insets(0, 0, 5, 5);

gbc_driveClassLabel.gridx = 1;

gbc_driveClassLabel.gridy = 3;

mainPane.add(targetLabel, gbc_driveClassLabel);

targetFileTF = new JTextField();

if (!SystemUtil.isWindows)

{

targetFileTF.setText("/home/whuang2/bin/wh_dos2unix");

}

GridBagConstraints gbc_driveClassTF = new GridBagConstraints();

gbc_driveClassTF.insets = new Insets(0, 0, 5, 5);

gbc_driveClassTF.fill = GridBagConstraints.HORIZONTAL;

gbc_driveClassTF.gridx = 2;

gbc_driveClassTF.gridy = 3;

mainPane.add(targetFileTF, gbc_driveClassTF);

targetFileTF.setColumns(10);

browserTargetBtn = new JButton("browser target");

GridBagConstraints gbc_browserTargetBtn = new GridBagConstraints();

gbc_browserTargetBtn.fill = GridBagConstraints.EAST;

gbc_browserTargetBtn.insets = new Insets(0, 0, 5, 5);

gbc_browserTargetBtn.gridx = 3;

gbc_browserTargetBtn.gridy = 3;

mainPane.add(browserTargetBtn, gbc_browserTargetBtn);

browserTargetBtn.addActionListener(new ActionListener()

{

@Override

public void actionPerformed(ActionEvent e)

{

//                                System.out.println("target");

DialogUtil.browser3(targetFileTF,

JFileChooser.FILES_AND_DIRECTORIES, CheckSameApp.this);

}

});

compareBtn = new JButton("compare");

GridBagConstraints gbc_runBtn = new GridBagConstraints();

gbc_runBtn.fill = GridBagConstraints.EAST;

gbc_runBtn.insets = new Insets(0, 0, 5, 5);

gbc_runBtn.gridx = 4;

gbc_runBtn.gridy = 3;

mainPane.add(compareBtn, gbc_runBtn);

compareBtn.addActionListener(new ActionListener()

{

@Override

public void actionPerformed(ActionEvent e)

{

if (!validate3(false))

{

return;

}

long size_of_targfile = targfile.length();

long size_of_srcfile = srcfile.length();

if (size_of_targfile != size_of_srcfile)

{

System.out.println("by size");

GUIUtil23.errorDialog(MESG_DIFF);

return;

}

new Thread(new Runnable()

{

@Override

public void run()

{

compareBtn.setEnabled(false);

String result_source = SystemUtil.getFileMD5(srcfile);

String result_target;

result_target = SystemUtil.getFileMD5(targfile);

boolean isSame2=isSame(result_source, result_target);

compareBtn.setEnabled(true);

if (isSame2)

{

GUIUtil23.infoDialog(MESG_SAME);

}

else

{

GUIUtil23.errorDialog(MESG_DIFF);

}

}

}).start();

}

});

c.add(mainPane, BorderLayout.CENTER);

//                System.out.println(c.getLayout());

//new JScrollPane(text)

}

//        private String create_md5(String filePath)

//        {

//                try

//                {

//                        return create_md5(filePath, null);

//                }

//                catch (IOException e)

//                {

//                        e.printStackTrace();

//                }

//                return null;

//        }

/***

*

* @param result_source : such as b79898bb7907648871745cd5422c79ce     /home/whuang2/bin/ab.txt

* @param result_target

* @return

*/

private boolean isSame(String result_source, String result_target)

{

if (result_source == null || result_target == null)

{

return false;

}

return (result_source.split("[ \t]")[0].equals(result_target

.split("[ \t]")[0]));

}

//        private String create_md5(String filePath, JButton button)

//                        throws IOException

//        {

//                //                String sourceFile=sourceFileTF.getText();

//                //

//                if (!new File(filePath).exists())

//                {

//                        System.out.println("does not exist");

//                        return null;

//                }

//                String result2 = null;

//                String[] commands = null;

//                if (SystemUtil.isWindows)

//                {

//                        String md5deepPath = null;

//                        if (SystemUtil.isOS32bit)

//                        {

//                                md5deepPath = "win32\\md5deep.exe";

//                        }

//                        else

//                        {

//                                md5deepPath = "win64\\md5deep64.exe";

//                        }

//

//                        commands = new String[]

//                        { System.getProperty("user.dir") + "\\md5deep\\" + md5deepPath,

//                                "-b", filePath };

//                }

//                else

//                {

//                        commands = new String[]

//                        { "md5sum", filePath };

//                }

//                ProcessBuilder pb = new ProcessBuilder(commands);

//                //                if (directory != null)

//                //                {

//                //                        pb.directory(directory);

//                //                }

//                //                Map env = pb.environment();

//                //                env.put("$HOME", "/home/whuang2");

//                MyProcess proc = null;

//                try

//                {

//                        proc = new MyProcess(pb.start());

//                        final CheckSameSwingWorker worker = new CheckSameSwingWorker(proc);

//                        worker.execute();

//

//                        proc.waitFor();

//                        if (button != null)

//                        {

//                                button.setEnabled(true);

//                        }

//                        result2 = worker.getStringbuf().toString();

//                        //                        System.out.println("before exitValue");

//                        //                        System.out.println("exit code:" + proc.exitValue());

//                        //                        System.out.println("result:" + result);

//                        //                        System.out.println("after exitValue");

//                        //                        return result2;

//                }

//                catch (InterruptedException e1)

//                {

//                        e1.printStackTrace();

//                }

//                catch (IOException e2)

//                {

//                        e2.printStackTrace();

//                }

//                return result2;

//        }

private boolean validate3(boolean isSelf)

{

String sourceFile = sourceFileTF.getText();

String targetFile_dir = targetFileTF.getText();

if (sourceFile == null || sourceFile.equals(""))

{

GUIUtil23

.warningDialog("source file can not be empty,please select again    !");

sourceFileTF.requestFocus();//focus

return false;

}

if (!isSelf)

{

if (targetFile_dir == null || targetFile_dir.equals(""))

{

GUIUtil23

.warningDialog("target file can not be empty,please select again !");

targetFileTF.requestFocus();//focus

return false;

}

}

//                                System.out.println("source file:" + sourceFile);

//                                System.out.println("target file:" + targetFile_dir);

srcfile = new File(sourceFile);

if (!srcfile.exists())

{

GUIUtil23

.warningDialog("source file does not exist,please select again!");

sourceFileTF.requestFocus();//focus

sourceFileTF.selectAll();

return false;

}

if (srcfile.exists() && srcfile.isDirectory())

{

GUIUtil23

.warningDialog("source file can not be directory,please select again!");

sourceFileTF.requestFocus();//focus

sourceFileTF.selectAll();

return false;

}

if (!isSelf)

{

{

targfile = new File(targetFile_dir);

if (!targfile.exists())

{

GUIUtil23

.warningDialog("target file does not exist,please select again!");

targetFileTF.requestFocus();//focus

targetFileTF.selectAll();

return false;

}

if (targfile.exists() && targfile.isDirectory())

{

GUIUtil23

.warningDialog("target file can not be directory,please select again!");

targetFileTF.requestFocus();//focus

targetFileTF.selectAll();

return false;

}

}

}

return true;

}

//        public static void main2(String[] args)

//        {

//                String sourceFile = "/home/whuag2/workspace/io0007-find_progess/src/com/cmd/dos/hw/util/CMDUtil.java";

//                md5(sourceFile);

//        }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值