FSO遍历文件夹

//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);//递归下级目录
       	}
    }
}

猜你喜欢

转载自blog.csdn.net/zqq3436/article/details/81707149