天天看點

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領域的研發職位

地點:不限