//1. 创建FSO对象
var fso = new ActiveXObject("Scripting.FileSystemObject");
//2. 遍历远程文件夹,并放入js数组,以(文件名,文件数目)方式存储
//2.1 定义远程访问的目录对象
var folder="\\\\127.0.0.1\\batches$\\";
//2.2 定义返回的数组对象
var folders=[];
//2.3 放入数组
push(folder,folders);
/*
push方法定义;
参数定义:
tfolder:远程文件目录地址;
tfolders:装入放入数组;
*/
function push(tfolder,tfolders){
//获取远程目录
var f2=fso.getFolder (tfolder);
//获取远程目录下所有子文件(夹)
var Collection = new Enumerator(f2.SubFolders);
var Obj;//定义一个对象,表示子文件(夹)对象
//遍历远程目录,获取文件路径及数目
for (Collection.moveFirst(); !Collection.atEnd(); Collection.moveNext()) {
var hasFile=false;//是否有文件
var fileNo=0;//文件数目
Obj = Collection.item();//当前文件(夹)对象
var tmpF=fso.getFolder(Obj.path);//获取当前文件(夹)目录
var tmpSubF=new Enumerator(tmpF.SubFolders);//获取当前文件(夹)目录下子文件夹
var noSubAndTif=false;//是否当前目录下没有文件
if(tmpSubF.atEnd()){//当前目录没有子目录
var ff=new Enumerator(tmpF.files);//获取当前目录下所有文件
if(ff.atEnd()){//目录内没有文件
noSubAndTif=true;
}else{//目录内有文件、遍历文件,文件数目递增
for(;!ff.atEnd();ff.moveNext()){
noSubAndTif=false;
hasFile=true;
fileNo++;
}
}
}
if(noSubAndTif){//当前目录下没有文件,则删除
try{
fso.DeleteFolder(Obj.path,true);
}catch(e){}
}
if(!noSubAndTif){//有文件(夹),则保存文件(夹)及数目
try{
var pathAndPages=Obj.path+(hasFile?(","+fileNo):(",0")).toString();
tfolders.push(pathAndPages);
}catch(e){
//alert("异常");
}
push(Obj.path,tfolders);//递归下级目录
}
}
}