⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 actionrunner.java

📁 可以导出一个项目的所有文件的目录结构
💻 JAVA
字号:
package codeexport.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Vector;

import org.dom4j.DocumentException;

import codeexport.conf.DirConf;
import codeexport.conf.EnvConfigure;
import codeexport.conf.FileConf;
import codeexport.conf.ConfFileReader;
import codeexport.conf.UnitConf;

public class ActionRunner {	
	private InfoOutput infoOutput = InfoOutput.getInstance();
	
	public ActionRunner(){
	}
	
	public void doExport(EnvConfigure envConf){
		infoOutput.appendInfo(envConf);
		
		try {				
			File confFile = envConf.getConfFile();
			DirConf dirConf = ConfFileReader.read(confFile);
			if(dirConf == null){
				return;
			}
			
			infoOutput.appendInfo("no error,Run now!\n");
			
			File srcDir = envConf.getProjectDir();
			
			File destDir = envConf.getSaveDir();
			destDir = new File(destDir,getTimeString());
			
			Vector<DirConf> childDirs = dirConf.getDirConfs();
			for(DirConf childDir:childDirs){
				doDirConf(srcDir,destDir,childDir);
			}
			
			Vector<FileConf> childFiles = dirConf.getFileConfs();
			for(FileConf childFile:childFiles){
				doFileConf(srcDir,destDir,childFile);
			}
			
			infoOutput.appendInfo("finished!\n");
		} catch (DocumentException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}	
	}
	
	private String getTimeString(){
		Calendar calendar = Calendar.getInstance();
		
		StringBuffer sb = new StringBuffer();
		
		sb.append(calendar.get(Calendar.YEAR));
		sb.append(calendar.get(Calendar.MONTH));
		sb.append(calendar.get(Calendar.DAY_OF_MONTH));
		sb.append(calendar.get(Calendar.HOUR));
		sb.append(calendar.get(Calendar.MINUTE));
		sb.append(calendar.get(Calendar.SECOND));
		
		return sb.toString();
	}
	
	private void doDirConf(File srcDir,File destDir,DirConf dirConf)throws IOException{
		String dirName = dirConf.getName();
		File curSrcDir = new File(srcDir,dirName);
		curSrcDir.mkdir();
		
		File curDestDir = new File(destDir,dirName);
		
		infoOutput.appendInfo("create directory " + curDestDir + "!\n");
		
		Vector<DirConf> childDirs = dirConf.getDirConfs();
		for(DirConf childDir:childDirs){
			doDirConf(curSrcDir,curDestDir,childDir);
		}
		
		Vector<FileConf> childFiles = dirConf.getFileConfs();
		for(FileConf childFile:childFiles){
			doFileConf(curSrcDir,curDestDir,childFile);
		}
	}
	
	private void doFileConf(File srcDir, File destDir, FileConf fileConf)
			throws IOException {
		String name = fileConf.getName();
		
		File srcFile = new File(srcDir,name);
		File destFile = new File(destDir,name);

		infoOutput.appendInfo("copy file " + srcFile + "!\n");
		
		FileInputStream fin = new FileInputStream(srcFile);
		FileOutputStream fout = new FileOutputStream(destFile);

		byte[] bytes = new byte[1024];
		int length = fin.read(bytes);
		while (length != -1) {
			fout.write(bytes, 0, length);
			length = fin.read(bytes);
		}

		fout.flush();
		fout.close();
		fin.close();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -