天天看点

js获取本地文件夹中文件列表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
	function init(){
		var fso = new ActiveXObject("Scripting.FileSystemObject");
		// 获取文件相关信息
		var f1 = fso.GetFile("F:\\test\\test.txt");
		alert('文件上次修改日期:' + f1.DateLastModified);
		var drv;
		var s = '';
		// 获取磁盘相关信息
		drv = fso.GetDrive(fso.GetDriveName("C:\\"));
		s += 'Drive C:' + '-' + drv.VolumeName + '\n';
		s += 'Total Space:' + drv.TotalSize / 1024 + 'Kb' + '\n';
		s += 'Free Space:' + drv.FreeSpace / 1024 + 'Kb' + '\n';
		alert('C盘信息' + s);
		// 操作文件夹
		fldr = fso.GetFolder("F:\\test");
		alert('父文件夹名称:' + fldr + '\n');
		// 显示所在drive名称 
		alert("Contained on drive " + fldr.Drive + "\n"); 
		// 判断是否为根目录 
		if (fldr.IsRootFolder){
			alert("This is the root folder."); 
		}
		else {
			alert("This folder isn't a root folder."); 
		}
		// 创建新文件夹 
		fso.CreateFolder ("F:\\test\\Bogus"); 
		alert("Created folder F:\\testBogus" + "\n"); 
		// 显示文件夹基础名称,不包含路径名 
		alert("Basename = " + fso.GetBaseName("F:\\test\\bogus") + "\n"); 
		// 删除创建的文件夹 
		fso.DeleteFolder ("F:\\test\\Bogus"); 
		alert("Deleted folder F:\\test\\Bogus" + "\n"); 
	}
	
	function init2(){
		var fso = new ActiveXObject("Scripting.FileSystemObject");
		// 获取目录下所有文件,对于该浏览器缓存目录,仅能获取到一个文件
		var path = 'C:\\Users\\zhang\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files';
		//path = 'F:\\test';
		var fldr = fso.GetFolder(path);
		var ff = new Enumerator(fldr.Files);
		var s = '';
		var fileArray = new Array();
		var fileName = '';
		var count = 0;
		for(; !ff.atEnd(); ff.moveNext()){
			fileName = ff.item().Name + '';
			fileName = fileName.toLowerCase();
			if(fileName.indexOf('cookie') >= 0){
				fileName = fileName.substring(0,fileName.indexOf('.'));
				fileName = fileName.substring(fileName.lastIndexOf('@')+1);
				s += fileName + '\n';
			}
			count++;
		}
		alert(count + ',' + s);
	}
</script>
</head>
<body onload="init2();">
</body>
</html>
           

该实例在IE8下运行通过,在chrome下运行不通过。

在init2方法中,path为IE浏览器环境文件夹路径,此时仅能获取到一个文件,但是我通过资源管理器看,该文件夹下有许多名称类似[email protected]的文件,不知为什么获取不到。请知道的朋友留言,谢啦。

---------------------------------广告-----------------------------

如果你对海量数据处理、服务高可用感兴趣,或者追求前端极致用户体验,并且想跳槽到国内IT大厂,可以考虑将简历发我,进行内推。本人是程序员,非HR。我的邮箱:[email protected]

条件:在所处的领域有一定技术积累,不要新手。对底层技术、技术原理有一定了解。

职位:限于IT领域的研发职位

地点:不限