JavaScript读取文件目录信息以及目录下的文件名信息

时间:2023-01-07 14:30:39

一、需求

最近遇到的一个需求,利用JS读取共享文件夹下的文件名信息,然后在网页上列出文件名,供用户选择。

二、代码

JS读取文件需要插件支持,该插件只有IE支持,所以本文的代码只能在IE下运行。
	<script type="text/javascript" charset="GBK">
	var projArray=new Array();
	//反斜杠需要会被转移,所以需要做以下处理
	var projectFolderPath="\\\\aaa\\bbb\\ccc";
	function load(){
		var fileDiv=document.getElementById("container");
<span style="white-space:pre">		</span>//该插件就是JS读取文件、目录的插件		
		var fso = new ActiveXObject("Scripting.FileSystemObject"); 

		var folder=fso.GetFolder(projectFolderPath);
		var subFolders = new Enumerator(folder.SubFolders);
		var id=0;
		for(;!subFolders.atEnd();subFolders.moveNext()){
			//subFolders.item()获取的是全路径
			var subfld=fso.GetFolder(subFolders.item());
			projArray.push(subfld);
<span style="white-space:pre">			</span>//动态生成列表:采用bootstrap中的Button列表选项
			var buttonStr='<button type="button" class="btn btn-primary btn-lg btn-block" onclick="btnOK(this)" id="'+id+'">'+subfld.Name+"</button>";
			fileDiv.innerHTML+=buttonStr;
			id++;
		}
	}
	
	function btnOK(btn){
		var enumFiles=new Enumerator(projArray[btn.id].files);
<span style="white-space:pre">		</span>//搜索该目录下是否存在'*.fly格'的文件
		for(;!enumFiles.atEnd();enumFiles.moveNext()){
			var file=enumFiles.item();
			if(file.type.toLowerCase()=="TerraExplorer Header".toLowerCase()){
				//sgworld.ProjectTree.LoadFlyLayer(file.path);
				sgworld.Open(file.path);
				return;
			}
		}
		alert("没有找到FLY文件!");
		
	}
	</script>

二、效果

JavaScript读取文件目录信息以及目录下的文件名信息


三、FileSystemObject

查看这里