本帖最后由 Study2work 于 2009-10-04 15:40:36 编辑

解决方案 »

  1.   

    作业贴  
    js写是没有安全权限额 必须是后台语言写
    用文件名正则去汽配
    re=/^.+\.html$/ig;
      

  2.   

    用js写不了这个的 要用fso要到后台去 不然弹出警告的 那程序没什么意义了
      

  3.   

    将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();">
      

  4.   


    <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>
      

  5.   

    to hookee: 
    你怎么什么都知道呢?
      

  6.   

    您写的太完美,这个程序!先赞一个再说!
    还是有一个问题想请教您:
    ————————————————————————————————————————————
    将以上代码另存为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中可以正常浏览,点击按钮也可以弹出结果!
      

  7.   

    IE 菜单中工具-Internet选项-安全-选本地Intranet-站点-高级-添加 http:/localhost:8080/ 确定,然后再访问,否则没有权限的.
      

  8.   

    -------------------------------------------------------------------------
    已经照您的方法改了,好像还是没有弹出来!
    ------------------------------------------------------------------------
    PS:那要是我把这个文件夹test(包括所有内容)上传到远程虚拟主机的话,通过域名去访问
    http://www.abc.com/test/myTest.html,传入的参数路径应该怎么写呢?
      

  9.   

    IE 菜单中工具-Internet选项-安全-选本地Intranet-站点 - 自定义级别 - AcriveX控件-下面的都启用。
    -----------------------
    js是在客户端执行的,显示的只是客户端的文件。
    要显示服务器端的目录文件,不能使用静态的html文件。
      

  10.   

    非常感谢您的解答,也让我深深的感觉到了您的功底(各方面),确实很厉害!我也是刚学JS,好多都不是清楚,有的时候,自己想到什么功能,实现不了的,就去搜索,百度虽然很好,但好多东西还是没有,所以还是需要像您这样的高手出马来解决像我这样菜鸟的问题,留下这个脚印方便后人吧!呵呵……
    --------------------------------------------------------------------------------
    PS:根据我的问题描述,您给出的方法非常精准的符合问题要求,思维也很慎密!
    要是您有时间,也给我讲讲如何才能拥有像您样的熟练技术呢?再次谢谢啦!
    对了,想问下,你有没有固定的联系方式,如博客什么的,以后要多向你学习哟……