如果开发项目有版本控制,那么版本控制工具可以列出本地变更的源文件,但是要获取.class文件则有点困难,得自己手工一个一个拷贝;
如果没有版本控制,那更是抓虾,修改一个需求,一顿操作猛如虎,一遇更新便懵逼。
为此,开发了一个小工具–网页版的项目源文件获取工具,有几个优点。
JS编写,修改方便
支持配置,扩展方便
只要有IE即可运行,操作方便
支持class内部类导出
支持任意文件类型
核心逻辑:利用AxtiveX控件,读写文件;
校验输入文件路径是否有效;
读取配置文件
根据配置读取class源文件,并拷贝到输出目录
打开目标目录
var configFilePath="D:\\config.txt";
var outputPath="D:\\outfile\\";
var configArray;
//文件类型校验
if(line.lastIndexOf(".java")!=-1 || line.lastIndexOf(".jsp")!=-1
|| line.lastIndexOf(".js")!=-1 || line.lastIndexOf(".htm")!=-1
|| line.lastIndexOf(".html")!=-1 || line.lastIndexOf(".css")!=-1
|| line.lastIndexOf(".jpg")!=-1 || line.lastIndexOf(".png")!=-1
|| line.lastIndexOf(".properties")!=-1 || line.lastIndexOf(".xml")!=-1
|| line.lastIndexOf(".jar")!=-1 || line.lastIndexOf(".class")!=-1){
legal=true;
//return false;
}
//读取配置文件内容
function initConfig(configFilePath){
var result=new Array();
var fso, f1;
var forReading= 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
//打开文件
f1 = fso.OpenTextFile(configFilePath, forReading);
//读取配置文件
while(f1 && !f1.AtEndOfStream){
var property = f1.ReadLine();
}
}
//递归创建目录
function createFolderAll(fso, folderPath, tempNext){
var nextPath=folderPath.substr(0, tempNext.length+folderPath.substr(tempNext.length,
folderPath.length).indexOf("\\")+1);
try{
if(folderPath==tempNext){
return;
}else{
if(!fso.FolderExists(nextPath+"\\")){
fso.createFolder(nextPath);
}
tempNext=folderPath.substr(0, nextPath.length+folderPath.substr(nextPath.length,
folderPath.length).indexOf("\\"));
if(folderPath.substr(nextPath.length, folderPath.length).indexOf("\\")==-1){
return;
}else{
createFolderAll(fso, folderPath, tempNext);
}
}
}catch(e){
alert("创建输出目录错误"+e.message);
tempFolderName="";
return;
}
}
//文件拷贝
if(fso.FileExists(innerClassFile)){
var f2 = fso.GetFile(innerClassFile);
f2.Copy(tempFolderName+innerClassName);
}
//打开本地目录
function openTargetDir(targetDir){
var cmd = new ActiveXObject("WScript.Shell");
var openDir="explorer "+targetDir;
cmd.run(openDir);
}