首页>代码>java swt客户端抓取项目中日志,配置,以及数据库信息>/zuidaima/export/src/com/duplicall/export/client/Export.java
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日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友