package com.duplicall.export.client; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import org.eclipse.swt.widgets.Button; import org.dom4j.DocumentException; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.wb.swt.SWTResourceManager; import com.duplicall.export.dao.SelectTarget; import com.duplicall.export.dao.SelectUsers; import com.duplicall.export.util.CopyDir; import com.duplicall.export.util.CopyDirFile; import com.duplicall.export.util.DelFile; import com.duplicall.export.util.XmlUtil; import com.duplicall.export.util.ZipCompressing; public class Export { protected Shell shell; private Text text; public static String chushixml; public static String sourceFilePath; public static String Clogs; public static String fileDSTPathdcloge; public static String fileDSTPathdcconf; public static String fileShanChuDeploy; public static String fileShanChuLog; public static String fileDSTPathLog; public static String fileDSTPathTomcatConf; public static String datafilePath; /** * Launch the application. * * @param args */ public static void main(String[] args) { try { Export window = new Export(); window.open(); } catch (Exception e) { e.printStackTrace(); } } /** * Open the window. */ public void open() { Display display = Display.getDefault(); createContents(); shell.open(); shell.layout(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } /** * Create contents of the window. */ protected void createContents() { shell = new Shell(SWT.MIN); shell.setSize(283, 342); shell.setText("备份工具"); shell.setLocation(Display.getCurrent().getClientArea().width / 2 - shell.getShell().getSize().x / 2, Display.getCurrent().getClientArea().height / 2 - shell.getSize().y / 2); Button button_shuju = new Button(shell, SWT.RADIO); button_shuju.setBounds(43, 127, 97, 17); button_shuju.setText("数据文件"); Button button_peizhi = new Button(shell, SWT.RADIO); button_peizhi.setText("配置文件"); button_peizhi.setBounds(43, 175, 97, 17); Button button_rizhi = new Button(shell, SWT.RADIO); button_rizhi.setText("日志文件"); button_rizhi.setBounds(146, 127, 97, 17); Button button_all = new Button(shell, SWT.RADIO); button_all.setTextDirection(33554400); button_all.setText("所有文件"); button_all.setBounds(146, 175, 97, 17); text = new Text(shell, SWT.BORDER); text.setBounds(33, 70, 133, 23); Button button_wenjian = new Button(shell, SWT.NONE); button_wenjian.setBounds(176, 68, 59, 27); button_wenjian.setText("浏览"); button_wenjian.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { JFileChooser jfile = new JFileChooser(); if (e.getSource().equals(button_wenjian)) {// 判断触发方法的按钮是哪个 jfile.setFileSelectionMode(1);// 设定只能选择到文件夹 int state = jfile.showOpenDialog(null);// 此句是打开文件选择器界面的触发语句 if (state == 1) { return; } else { File f = jfile.getSelectedFile();// f为选择到的目录 text.setText(f.getAbsolutePath()); } } } }); Button button_export = new Button(shell, SWT.NONE); button_export.setForeground(SWTResourceManager.getColor(0, 0, 0)); button_export.setBounds(79, 230, 75, 41); button_export.setText("导出"); button_export.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (button_shuju.getSelection()) { try { funDatas(); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (button_all.getSelection()) { try { funAlls(); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (button_rizhi.getSelection()) { try { funLogs(); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (button_peizhi.getSelection()) { try { funDeploys(); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { JOptionPane.showMessageDialog(null, "请先选择文件类型", "提示", (int) JOptionPane.CENTER_ALIGNMENT); } } }); } public void funJudgmentSystem() { String dupliCallFileLocation = null; String duplicallXml = "\\a.xml"; String osName = System.getProperty("os.name"); if (osName.startsWith("Windows") || osName.startsWith("windows")) {// 判断当前系统 String osRoot = System.getenv("SystemRoot"); dupliCallFileLocation = osRoot + duplicallXml; } else { dupliCallFileLocation = "/etc" + duplicallXml; } XmlUtil xmlUtilcommon = new XmlUtil(); try { xmlUtilcommon.readFile(dupliCallFileLocation); } catch (DocumentException e1) { e1.printStackTrace(); } try { chushixml = xmlUtilcommon.getText("//common/installdir"); sourceFilePath = chushixml + "dclog.xml";// duplicall路径下的dclog.xml xmlUtilcommon.readFile(sourceFilePath);// 读取 dclog.xml Clogs = xmlUtilcommon.getText("//common/logpath");// C:/log下的日志 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 配置复制文件 public void funDeployCopys() throws Exception { funJudgmentSystem(); String sourceFilePathdcloge = chushixml;// dcloge下的txt和xml文件 String sourceFilePathconf = chushixml + "web\\conf";// conf下的配置文件 if (sourceFilePathdcloge.isEmpty() || sourceFilePathconf.isEmpty()) { JOptionPane.showMessageDialog(null, "请检查配置文件路径或当前路径下文件夹是否存在!", "提示", (int) JOptionPane.CENTER_ALIGNMENT); return; } fileDSTPathdcloge = text.getText().trim() + "\\Dcloge";// 待删除选定(任意)路径下的文件 fileDSTPathdcconf = text.getText().trim() + "\\Conf";// 待删除选定(任意)路径下的文件 CopyDirFile.copyFile(sourceFilePathdcloge, fileDSTPathdcloge);// 复制文件到待删除文件夹 CopyDirFile.copyFile(sourceFilePathconf, fileDSTPathdcconf); fileShanChuDeploy = text.getText().trim() + "\\DclogDeploy";// --------------- String url2 = text.getText().trim() + "/DclogDeploy/dcloge/"; (new File(url2)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] file = (new File(fileDSTPathdcloge)).listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { // 复制文件 CopyDir.copyFile(file[i], new File(url2 + file[i].getName())); } if (file[i].isDirectory()) { // 复制目录 String sorceDir = fileDSTPathdcloge + File.separator + file[i].getName(); String targetDir = url2 + File.separator + file[i].getName(); CopyDir.copyDirectiory(sorceDir, targetDir); } } String url3 = text.getText().trim() + "/DclogDeploy/conf/"; (new File(url3)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] filelog = (new File(sourceFilePathconf)).listFiles(); for (int i = 0; i < filelog.length; i++) { if (filelog[i].isFile()) { // 复制文件 CopyDir.copyFile(filelog[i], new File(url3 + filelog[i].getName())); } if (filelog[i].isDirectory()) { // 复制目录 String sorceDir = sourceFilePathconf + File.separator + filelog[i].getName(); String targetDir = url3 + File.separator + filelog[i].getName(); CopyDir.copyDirectiory(sorceDir, targetDir); } } } // 配置删除配置临时存储文件夹 public void fundelDeploy() { String dir = fileDSTPathdcloge, dirT = fileDSTPathdcconf; DelFile.deleteDirectory(dir);// 删除打包之前文件夹 DelFile.deleteDirectory(dirT);// 删除打包之前文件夹 // DelFile.deleteDirectory(dirShan);// 删除打包之前文件夹 } // 配置压缩文件 public void funDeployZips() { String fileDSTPathT = text.getText().trim();// 任意选定路径 String String zipPath = fileDSTPathT + "/DclogDeploy.zip";// 创建打包zip文件 ZipCompressing.zip(zipPath, new File(fileShanChuDeploy)); // String dir = fileDSTPathdcloge, dirT = fileDSTPathdcconf, dirShan = fileShanChuDeploy; DelFile.deleteDirectory(dir);// 删除打包之前文件夹 DelFile.deleteDirectory(dirT);// 删除打包之前文件夹 DelFile.deleteDirectory(dirShan);// 删除打包之前文件夹 } // 配置 public void funDeploys() throws Exception { funJudgmentSystem(); funDeployCopys(); funDeployZips(); } // ----------------------------------------------------- // 日志 public void funLogs() throws Exception { funJudgmentSystem(); funLogCopys(); funLogZips(); } // 复制日志文件 public void funLogCopys() throws Exception { String sourceFilePathTomcat = chushixml + "web\\tomcat\\logs";// tomcat下的日志 String sourceFilePathCLog = Clogs; System.out.println(sourceFilePathTomcat + ":路径sourceFilePathTomcat==========!============");// ---- System.out.println(Clogs + ":Clogs------"); fileDSTPathLog = text.getText().trim() + "\\Log";// 待删除选定(任意)路径下的文件 fileDSTPathTomcatConf = text.getText().trim() + "\\TomcatConf";// 待删除选定(任意)路径下的文件 CopyDirFile.copyFile(sourceFilePathCLog, fileDSTPathLog);// 复制文件到待删除文件夹 CopyDirFile.copyFile(sourceFilePathTomcat, fileDSTPathTomcatConf); fileShanChuLog = text.getText().trim() + "\\DclogLogs";// --------------- String url2 = text.getText().trim() + "/DclogLogs/Clog/"; (new File(url2)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] file = (new File(sourceFilePathCLog)).listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { // 复制文件 CopyDir.copyFile(file[i], new File(url2 + file[i].getName())); } if (file[i].isDirectory()) { // 复制目录 String sorceDir = sourceFilePathCLog + File.separator + file[i].getName(); String targetDir = url2 + File.separator + file[i].getName(); CopyDir.copyDirectiory(sorceDir, targetDir); } } String url3 = text.getText().trim() + "/DclogLogs/Tomcatconf/"; (new File(url3)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] filelog = (new File(sourceFilePathTomcat)).listFiles(); for (int i = 0; i < filelog.length; i++) { if (filelog[i].isFile()) { // 复制文件 CopyDir.copyFile(filelog[i], new File(url3 + filelog[i].getName())); } if (filelog[i].isDirectory()) { // 复制目录 String sorceDir = sourceFilePathTomcat + File.separator + filelog[i].getName(); String targetDir = url3 + File.separator + filelog[i].getName(); CopyDir.copyDirectiory(sorceDir, targetDir); } } } // 压缩日志文件 public void funLogZips() { String fileDSTPathT = text.getText().trim();// 任意选定路径 String String zipPath = fileDSTPathT + "/DclogLogs.zip";// 创建打包zip文件 ZipCompressing.zip(zipPath, new File(fileShanChuLog)); // String dir = fileDSTPathLog, dirT = fileDSTPathTomcatConf, dirShan = fileShanChuLog; DelFile.deleteDirectory(dir);// 删除打包之前文件夹 DelFile.deleteDirectory(dirT);// 删除打包之前文件夹 DelFile.deleteDirectory(dirShan);// 删除打包之前文件夹 } // 删除日志临时文件路径 public void funLogDels() { String dir = fileDSTPathLog, dirT = fileDSTPathTomcatConf; DelFile.deleteDirectory(dir);// 删除打包之前文件夹 DelFile.deleteDirectory(dirT);// 删除打包之前文件夹 // DelFile.deleteDirectory(dirShan);// 删除打包之前文件夹 } // 数据 public void funDatas() throws Exception { funDataCopy(); funDataZip(); // funDataDel(); } public void funDataCopy() throws Exception { String str = text.getText().trim(); String filePathTarget = text.getText().trim() + "\\Target.txt"; System.out.println(filePathTarget + "::::"); String filePathUsers = text.getText().trim() + "\\Users.txt"; SelectTarget.run(filePathTarget); SelectUsers.run(filePathUsers); /* * if (filePathTarget.isEmpty() || filePathUsers.isEmpty()) { * JOptionPane.showMessageDialog(null, "请先检查数据库连接", "提示", (int) * JOptionPane.CENTER_ALIGNMENT); return; } */ datafilePath = text.getText().trim() + "\\Datas"; File folder = new File(datafilePath);// 创建一个待删除文件夹 if (!folder.exists()) { folder.mkdirs(); /// 如果不存在,创建目录 System.err.println("创建完毕"); } System.out.println("-----继续执行"); CopyDirFile.copyFileData(str, datafilePath); } public void funDataZip() { String fileDSTPathT = text.getText().trim();// 选定路径 String zipPath = text.getText().trim() + "/DclogDatas.zip"; ZipCompressing.zip(zipPath, new File(datafilePath));// 打包zip String dir = datafilePath; DelFile.deleteDirectory(dir);// 删除打包之前文件夹 // DelFile.deleteDirectory(zipPath); File file = new File(fileDSTPathT);// 抓到选定路径,删除当前生成文件 File temp = null; File[] filelist = file.listFiles(); for (int i = 0; i < filelist.length; i++) { temp = filelist[i]; // 防止误删除其他文件 if (temp.getName().endsWith("Target.txt") || temp.getName().endsWith("Users.txt"))// { temp.delete();// 删除文件} System.out.println("删除成功"); } } } public void funDataDel() { String fileDSTPathT = text.getText().trim();// 选定路径 // String dir = datafilePath; // DelFile.deleteDirectory(dir);// 删除打包之前文件夹 File file = new File(fileDSTPathT);// 抓到选定路径,删除当前生成文件 File temp = null; File[] filelist = file.listFiles(); for (int i = 0; i < filelist.length; i++) { temp = filelist[i]; // 防止误删除其他文件 if (temp.getName().endsWith("Target.txt") || temp.getName().endsWith("Users.txt"))// { temp.delete();// 删除文件} System.out.println("删除成功"); } } } public void funAlls() throws Exception { funJudgmentSystem(); /* * funDataCopy(); funDataDel(); * * funLogCopys(); funLogDels(); * * funDeployCopys(); fundelDeploy(); */ // ---------------------------数据----------------------------- String str = text.getText().trim(); String filePathTarget = text.getText().trim() + "\\Target.txt"; System.out.println(filePathTarget + "::::"); String filePathUsers = text.getText().trim() + "\\Users.txt"; SelectTarget.run(filePathTarget); SelectUsers.run(filePathUsers); /* * if (filePathTarget.isEmpty() || filePathUsers.isEmpty()) { * JOptionPane.showMessageDialog(null, "请先检查数据库连接", "提示", (int) * JOptionPane.CENTER_ALIGNMENT); return; } */ datafilePath = text.getText().trim() + "/Alls\\Datas"; File folder = new File(datafilePath);// 创建一个待删除文件夹 if (!folder.exists()) { folder.mkdirs(); /// 如果不存在,创建目录 System.err.println("创建完毕"); } System.out.println("-----继续执行"); CopyDirFile.copyFileData(str, datafilePath); String fileDSTPathT = text.getText().trim();// 选定路径 // String dir = datafilePath; // DelFile.deleteDirectory(dir);// 删除打包之前文件夹 File file = new File(fileDSTPathT);// 抓到选定路径,删除当前生成文件 File temp = null; File[] filelist = file.listFiles(); for (int i = 0; i < filelist.length; i++) { temp = filelist[i]; // 防止误删除其他文件 if (temp.getName().endsWith("Target.txt") || temp.getName().endsWith("Users.txt"))// { temp.delete();// 删除文件} System.out.println("删除成功"); } } // --------------------------------日志---------------------- String sourceFilePathTomcat = chushixml + "web\\tomcat\\logs";// tomcat下的日志 String sourceFilePathCLog = Clogs; System.out.println(sourceFilePathTomcat + ":路径sourceFilePathTomcat==========!============");// ---- System.out.println(Clogs + ":Clogs------"); fileDSTPathLog = text.getText().trim() + "\\Log";// 待删除选定(任意)路径下的文件 fileDSTPathTomcatConf = text.getText().trim() + "\\TomcatConf";// 待删除选定(任意)路径下的文件 CopyDirFile.copyFile(sourceFilePathCLog, fileDSTPathLog);// 复制文件到待删除文件夹 CopyDirFile.copyFile(sourceFilePathTomcat, fileDSTPathTomcatConf); fileShanChuLog = text.getText().trim() + "/Alls\\DclogLogs";// --------------- String url2 = text.getText().trim() + "/Alls/DclogLogs/Clog/"; (new File(url2)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] filelog = (new File(sourceFilePathCLog)).listFiles(); for (int i = 0; i < filelog.length; i++) { if (filelog[i].isFile()) { // 复制文件 CopyDir.copyFile(filelog[i], new File(url2 + filelog[i].getName())); } if (filelog[i].isDirectory()) { // 复制目录 String sorceDir = sourceFilePathCLog + File.separator + filelog[i].getName(); String targetDir = url2 + File.separator + filelog[i].getName(); CopyDir.copyDirectiory(sorceDir, targetDir); } } String url3 = text.getText().trim() + "/Alls/DclogLogs/Tomcatconf/"; (new File(url3)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] filelogTomConf = (new File(sourceFilePathTomcat)).listFiles(); for (int i = 0; i < filelogTomConf.length; i++) { if (filelogTomConf[i].isFile()) { // 复制文件 CopyDir.copyFile(filelogTomConf[i], new File(url3 + filelogTomConf[i].getName())); } if (filelogTomConf[i].isDirectory()) { // 复制目录 String sorceDir = sourceFilePathTomcat + File.separator + filelogTomConf[i].getName(); String targetDir = url3 + File.separator + filelogTomConf[i].getName(); CopyDir.copyDirectiory(sorceDir, targetDir); } } String dir1 = fileDSTPathLog, dirT = fileDSTPathTomcatConf; DelFile.deleteDirectory(dir1);// 删除打包之前文件夹 DelFile.deleteDirectory(dirT);// 删除打包之前文件夹 // 0----------------------------------配置------------------------------ String sourceFilePathdcloge = chushixml;// dcloge下的txt和xml文件 String sourceFilePathconf = chushixml + "web\\conf";// conf下的配置文件 if (sourceFilePathdcloge.isEmpty() || sourceFilePathconf.isEmpty()) { JOptionPane.showMessageDialog(null, "请检查配置文件路径或当前路径下文件夹是否存在!", "提示", (int) JOptionPane.CENTER_ALIGNMENT); return; } String fileDSTPathdcloge = text.getText().trim() + "\\Dcloge";// 待删除选定(任意)路径下的文件 String fileDSTPathdcconf = text.getText().trim() + "\\Conf";// 待删除选定(任意)路径下的文件 CopyDirFile.copyFile(sourceFilePathdcloge, fileDSTPathdcloge);// 复制文件到待删除文件夹 CopyDirFile.copyFile(sourceFilePathconf, fileDSTPathdcconf); String url21 = text.getText().trim() + "/Alls/DclogDeploy/dcloge/"; (new File(url21)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] file1 = (new File(fileDSTPathdcloge)).listFiles(); for (int i = 0; i < file1.length; i++) { if (file1[i].isFile()) { // 复制文件 CopyDir.copyFile(file1[i], new File(url21 + file1[i].getName())); } if (file1[i].isDirectory()) { // 复制目录 String sorceDir = fileDSTPathdcloge + File.separator + file1[i].getName(); String targetDir = url21 + File.separator + file1[i].getName(); CopyDir.copyDirectiory(sorceDir, targetDir); } } String url31 = text.getText().trim() + "/Alls/DclogDeploy/conf/"; (new File(url31)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] file11 = (new File(sourceFilePathconf)).listFiles(); for (int i = 0; i < file11.length; i++) { if (file11[i].isFile()) { // 复制文件 CopyDir.copyFile(file11[i], new File(url31 + file11[i].getName())); } if (file11[i].isDirectory()) { // 复制目录 String sorceDir = sourceFilePathconf + File.separator + file11[i].getName(); String targetDir = url31 + File.separator + file11[i].getName(); CopyDir.copyDirectiory(sorceDir, targetDir); } } String dir11 = fileDSTPathdcloge, dirT1 = fileDSTPathdcconf; DelFile.deleteDirectory(dir11);// 删除打包之前文件夹 DelFile.deleteDirectory(dirT1);// 删除打包之前文件夹 String Alls = text.getText().trim() + "\\Alls"; String zippath = fileDSTPathT + "/alls.zip"; ZipCompressing.zip(zippath, new File(Alls)); DelFile.deleteDirectory(Alls); } }
最近下载更多
1358849392 LV21
2023年7月1日
zzuljh LV9
2021年12月16日
qiheideguang LV16
2019年9月11日
woshigsb LV5
2018年9月7日
一个友好的小朋友 LV18
2017年4月4日
a3870764722a LV22
2017年1月3日
aihui523 LV34
2016年12月29日
最代码官方 LV168
2016年12月29日
最近浏览更多
刘孟飞 LV19
6月21日
1358849392 LV21
2022年11月10日
qwqw900619 LV4
2022年7月16日
1265260263 LV4
2022年4月8日
zzuljh LV9
2021年12月16日
itcaizhe LV9
2021年7月26日
zyzyzy1 LV1
2021年4月30日
329512801 LV28
2021年4月8日
ma406805131 LV15
2021年3月11日
sun丶孙 LV8
2020年11月6日