65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 JavaScript 进行文件搜索

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.50/5 (7投票s)

2007年12月13日

CPOL
viewsIcon

47251

downloadIcon

724

使用 javascript 在客户端机器上搜索文件。

引言

这用于使用 javascript 在客户端机器上搜索文件。

使用代码

在运行此程序之前,请转到 Internet Explorer>工具>Internet 选项>安全>自定义级别>,然后启用“初始化并脚本 ActiveX 控件,即使它们未标记为安全”。

我正在使用 ActiveXObject Scripting.FileSystemObject 来搜索客户端机器上的驱动器、文件夹、子文件夹和文件。

		var fSObj =new ActiveXObject("Scripting.FileSystemObject");		

作为 body onload 上的第一步,我们使用此 ActiveXObject 将系统中的驱动器填充到下拉列表 ddlDrive 中。在选择驱动器并输入要搜索的文件名后,我们调用递归函数 RecursiveSearch(path) 来迭代所选驱动器中的所有文件夹和子文件夹。
function RecursiveSearch(path)
{
    	var txtSearch=document.getElementById('txtSearch');
	var txtToSearch=new String(txtSearch.value);
	if(txtToSearch.substring(0,2)=="*.")
	{
		txtToSearch=txtToSearch.substring(1,txtToSearch.length);
	}
	txtToSearch=txtToSearch.toLowerCase();
	var enObj = new Enumerator(fSObj.GetFolder(path).Files);
	for(i=0;!enObj.atEnd();enObj.moveNext())
	{
		var fileName=new String(enObj.item(i).name);
		fileName=fileName.toLowerCase();	
		if(txtToSearch.substring(0,1)==".")
			fileName=fileName.substring(fileName.lastIndexOf("."),fileName.length);
		if(txtToSearch==fileName || fileName.search(txtToSearch)>-1)
		{
			..........			}
	}	
	var enObj = new Enumerator(fSObj.GetFolder(path).SubFolders);
	for(i=0;!enObj.atEnd();enObj.moveNext())
	{
		var path=new String(enObj.item(i).path);
		RecursiveSearch(path);
	}	
}

我们还在检索文件夹或文件时使用枚举器。

var enObj = new Enumerator(fSObj.GetFolder(path).Files);
for(i=0;!enObj.atEnd();enObj.moveNext())
{
     ......
}		

关注点

在编写代码的过程中,你学到了什么有趣/好玩/令人恼火的东西吗? 你做了什么特别巧妙、疯狂或异想天开的事情吗?

历史

在此处保持您所做的任何更改或改进的实时更新。

© . All rights reserved.