js遍历文件夹(IE)

首先声明,本方法只适用于IE内核的浏览器,因为要用到ActiveX控件,ff啥的都不支持的,你懂得。

 

第一点是要选择文件夹,于是要用的Shell这个东西,这东西没研究过,反正能用。代码如下

try {
		        var Message = "\u8bf7\u9009\u62e9\u6587\u4ef6\u5939";  //选择框提示信息
		        var Shell = new ActiveXObject("Shell.Application");
		  		var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
		  		
		  		
		        if (Folder != null) {
		            Folder = Folder.items();  // 返回 FolderItems 对象
		            Folder = Folder.item();  // 返回 Folderitem 对象
		            Folder = Folder.Path;   // 返回路径
		            if (Folder.charAt(Folder.length - 1) != "\\") {
		                Folder = Folder + "\\";
		            }
		            document.getElementById(path).value = Folder;
		            buttonSta(1);
		            return Folder;
		        }
		    }catch (e) {
		        W.$.dialog.alert('浏览器权限不够,请将可ActiveX控件设为启用!');
		 	}

 将这个写到一个方法里面,触发之后就会弹出一个文件选择器的东西,像表单里面的file点击按钮后的样子。

选择了之后,将文件夹路径存到一个input里面,document.getElementById(path).value = Folder;就是了。然后就是遍历文件夹。遍历文件夹用到的FSO(全称FileSystemObject);上代码

var fso = new ActiveXObject("Scripting.FileSystemObject");
    	       var filePath = document.getElementById("filePath").value;
    	       if(filePath!=""){
    	   	   var f = fso.GetFolder(filePath); 
   	   	       bianli(f);
   	   	       function bianli(folder){
					//取文件夹
					var underFolders = new Enumerator(folder.SubFolders);
					//取文件
					var underFiles = new Enumerator(folder.files);
					for (;!underFiles.atEnd();underFiles.moveNext()){
						var fn = "" + underFiles.item();
						if(lastname(fn)){//验证后缀名是否为图片
			   				uploadImgNames1 += fn + ",";//将文件名用,分割
			   				i++;
						}
					}
					for (;!underFolders.atEnd();underFolders.moveNext()){
						bianli(underFolders.item());
					}
				}

 这样,我们就能拿到所有文件的完整路径和名称了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值