将localhost加入IE本地站点,修改doit()中的路径为实际路径:<script> function htmFileCount(path){ var fso = new ActiveXObject("Scripting.FileSystemObject"); var dir = fso.GetFolder(path) var fc = new Enumerator(dir.Files); var n = 0; for (; !fc.atEnd(); fc.moveNext()){ var file = fc.item(); if(getExt(file.Name)=="html") n++; } return n; } function getExt(s){ var p = s.lastIndexOf("."); return s.substring(p+1,s.length).toLowerCase(); } function doit(){ alert(htmFileCount("D:\\test\\")); } </script> <input type="button" value="click" onclick="doit();">
<script> function htmlFileTitle(path){ var fso = new ActiveXObject("Scripting.FileSystemObject"); var dir = fso.GetFolder(path) var fc = new Enumerator(dir.Files); var s = ""; for (; !fc.atEnd(); fc.moveNext()){ var file = fc.item(); var title = getTitle(file.Path, fso); if(title!="") s += "<a href='" + file.Path + "'>"+title+"</a><br>"; } document.getElementById("pad").innerHTML = s; } function getTitle(path, fso){ var f = fso.OpenTextFile(path,1); var content = f.ReadAll(); f.Close(); var re = /<\s*title\s*>\s*([^<]+)\s*<\s*\/\s*title\s*>/im; var a = re.exec(content); if(a!=null) return a[1]; else return ""; } function doit(){ htmlFileTitle("D:\\test\\"); } </script> <input type="button" value="click" onclick="doit();"> <div id="pad"></div>
js写是没有安全权限额 必须是后台语言写
用文件名正则去汽配
re=/^.+\.html$/ig;
function htmFileCount(path){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var dir = fso.GetFolder(path)
var fc = new Enumerator(dir.Files);
var n = 0;
for (; !fc.atEnd(); fc.moveNext()){
var file = fc.item();
if(getExt(file.Name)=="html") n++;
}
return n;
}
function getExt(s){
var p = s.lastIndexOf(".");
return s.substring(p+1,s.length).toLowerCase();
}
function doit(){
alert(htmFileCount("D:\\test\\"));
}
</script>
<input type="button" value="click" onclick="doit();">
<script>
function htmlFileTitle(path){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var dir = fso.GetFolder(path)
var fc = new Enumerator(dir.Files);
var s = "";
for (; !fc.atEnd(); fc.moveNext()){
var file = fc.item();
var title = getTitle(file.Path, fso);
if(title!="") s += "<a href='" + file.Path + "'>"+title+"</a><br>";
}
document.getElementById("pad").innerHTML = s;
}
function getTitle(path, fso){
var f = fso.OpenTextFile(path,1);
var content = f.ReadAll();
f.Close();
var re = /<\s*title\s*>\s*([^<]+)\s*<\s*\/\s*title\s*>/im;
var a = re.exec(content);
if(a!=null) return a[1];
else return "";
}
function doit(){
htmlFileTitle("D:\\test\\");
}
</script>
<input type="button" value="click" onclick="doit();">
<div id="pad"></div>
你怎么什么都知道呢?
还是有一个问题想请教您:
————————————————————————————————————————————
将以上代码另存为myTest.html于D盘的test目录中,
在当前这个test目录中还有一个文件夹allHtmlFolder,此allHtmlFolder文件夹里面包含1.html 2.html 3.html 4.html 5.html这样几个文件。将test目录设置为本地服务器的根目录,那么,对myTest.html这个文件的访问将可以写成:http://localhost:8080/myTest.html(其中8080端口根据本地IIS服务器设置而定)
访问后,点击“click”按钮 发现没有了反应,我的目标是遍历出allHtmlFolder文件夹中以.html结尾文件的个数!当然,在传入htmFileCount()参数的时候,我把路径也已经改到了allHtmlFolder这个文件夹,即:htmFileCount("D:\\test\\allHtmlFolder\\")那么,为什么用http://localhost:8080/myTest.html这种方式浏览不能得到想要的结果呢?
请问这个问题又应该如何解决呢?
------------------------------------------------------------------------------------
PS:在D盘test目录中直接双击“myTest.html”在IE中可以正常浏览,点击按钮也可以弹出结果!
已经照您的方法改了,好像还是没有弹出来!
------------------------------------------------------------------------
PS:那要是我把这个文件夹test(包括所有内容)上传到远程虚拟主机的话,通过域名去访问
http://www.abc.com/test/myTest.html,传入的参数路径应该怎么写呢?
-----------------------
js是在客户端执行的,显示的只是客户端的文件。
要显示服务器端的目录文件,不能使用静态的html文件。
--------------------------------------------------------------------------------
PS:根据我的问题描述,您给出的方法非常精准的符合问题要求,思维也很慎密!
要是您有时间,也给我讲讲如何才能拥有像您样的熟练技术呢?再次谢谢啦!
对了,想问下,你有没有固定的联系方式,如博客什么的,以后要多向你学习哟……