问题补充:我做了一段用javascript生成html的代码,想一运行就可以在该段代码所在的目录创建一个名为aa.htm的文件,
非楼上所说的"在客户端想取得服务器虚拟目录的物理路径"下面是我所说的那段代码,希望有好心人能帮我改一下或指点一下

解决方案 »

  1.   


    <script type="text/javascript"> function createFile(){
    var fso=new ActiveXObject("Scripting.FileSystemObject");
    var fld=fso.GetFolder("C:\\Inetpub\\wwwroot\\javascript\\getFile");//这里的路径就是需要用到物理路径的地方
    var fileText=fld.CreateTextFile("aa.htm");
    fileText.close();
    var fls=fso.GetFile("C:\\Inetpub\\wwwroot\\javascript\\getFile\\aa.htm");//这里也是,但只要知道上面的,这里不用担心
    var fileText=fls.OpenAsTextStream(2,-1);
    var line="\r\n";
    fileText.Write("aa"+line);
    fileText.Write("bb"+line);
    fileText.close();
    }
    createFile();

    </script>
      

  2.   

    标题应该改为:<如何用javascript求文件所在目录的物理路径>
      

  3.   

    不可能。
    你3楼的写法就是要求每个客户端都有"C:\\Inetpub\\wwwroot\\javascript\\getFile")这个的路径。事实上,只有服务端才有这个目录路径。
    你可以为每个客户端指定一个存放目录,例如:d:\getfile\,生成的HTML存放到这里。但权限问题够你折腾的
      

  4.   

    权限什么的,不用管,我是在做javascript中fso的练习,但被这个问题卡了一天了..
      

  5.   


    注意:<上面的贴全部作废>我发觉我之前的内容说得不够清楚,容易误导他人,所以从这里开始,经重新整理后,再发一次
    标题:<如何用javascript求文件所在目录的物理路径>要求的功能是:哪台计算机使用这个文件,就要获得那台计算机存放该文件的完整物理路径例如:我打开了一个叫"aa.htm"的文件,而该文件所在的相对路径是:/aa.htm该文件所在的绝对路径(也叫"物理路径")是:
    C:\\Inetpub\\wwwroot\\aa.htm当我打开该文件后,document.write(物理路径),有高人可以给出里面的"物理路径"的写法吗?
      

  6.   

    楼主的意思是javascript中有没有像server.mappath()这样的函数?
      

  7.   

    fso = new ActiveXObject("Scripting.FileSystemObject");
    var url = window.location+'';//获取当前页的路径
    //根据当前页的路径获取你的文件路径
    tf = fso.CreateTextFile(url+"/file.txt", true);
    //如果文件在上一目录可以截取url
      

  8.   

    <script>
    alert('<%=server.mappath("文件名")%>')
    </script>
      

  9.   

    这个方法已经离题了...已经用了asp这位大哥,会<只用javascript的方式>求吗?
      

  10.   

    回复12楼:该方法是行不通的,fso.CreateTextFile()方法只接受物理路径(符号是"\\"),不接受浏览器上截取的路径
      

  11.   

    晕死,你现在可以创建var fso=new ActiveXObject("Scripting.FileSystemObject");这个对象吗?
      

  12.   

    没看懂楼主的需求,
    到底是想在服务器端生成文件,
    还是在客户端生成文件?是想做一个HTA吗?
      

  13.   

    如果可以创建对象
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 
    var newpath = fso.BuildPath("c:\\tmp", "cs.txt"); //生成 c:\tmp\cs.txt的路径 
    alert(newpath); 
    --> 
    </SCRIPT> 
    你先试试这个能同过没
      

  14.   

    <SCRIPT LANGUAGE="JavaScript" runat="server"> var fso = new ActiveXObject("Scripting.FileSystemObject"); 
    var newFileObject = fso.CreateTextFile("c:\\aa.bat", true);</SCRIPT> 我是提示我没有权限了
      

  15.   

    如果你是直接拖进浏览器,然后获取到这个文件的路径,你分析浏览器上面的url就可以了var path=unescape(window.location.href.replace("file:///","")).replace(/\//g,"\\").replace(/(\\)[^\\]+$/,"$1");
    alert(p)
      

  16.   

    回复21,22楼:可以创建fso及其所有操作(创建文件,删除,编辑等)当然,也包括你所例举的.但fso.BuildPath("c:\\tmp", "cs.txt")的作用只是将2个参数的内容合为一个...且参数都要自己给出...
      

  17.   

    <SCRIPT LANGUAGE="JavaScript" runat="server"> var fso = new ActiveXObject("Scripting.FileSystemObject"); 
    var newFileObject = fso.CreateTextFile("c:\\aa.bat", true); </SCRIPT> 
    这个你可以创建???
    可以的话不就行了?
      

  18.   

    回复20楼:现在是,制作出的页面,只在一台计算机上运行(本人的测试服务器)所以是客户端,也是服务器端但只能使用javascript来解决这个问题(获得本文件所在的物理路径)
      

  19.   

    回复26楼:fso.CreateTextFile("c:\\aa.bat", true); 的作用是创建文件,我需要的是创建文件所需要的物理路径,即1第个参数"c:\\aa.bat",但这里需要手动输入
      

  20.   

    手工输入的时候应该是:c:\\\\aa.bat
      

  21.   

    回复29楼:什么是根据请求的参数来?如何加点代码?意思是在网页地址上传递这个参数然后经修改为可以格式后使用?这样做,已经离题了,还是需要有一个页面是手动输入的至于把这个搞出来的意义在于:
    这是一个比较敏感的题目,解决了,在这方面(javascript编程)思维方面都会有很大进步但在网上还没看到有人提出相关的问题
    javascript中貌似也没有单独的函数或对象或方法就可以获得
    所以想得到结果,就得花点心思
    但是想尽各种手段,都没有想到才来这里集思广益的..希望高手们赐教
      

  22.   

    //获取日志根目录绝对路径
    var rootPath;
    function getRootPath(){
    var url = this.location.href
    var pos = url.lastIndexOf("/")==-1?url.lastIndexOf("\\"):url.lastIndexOf("/");
    rootPath = url.substring(0,pos+1)+"data\\";
    rootPath = rootPath.replace("file:///","");
    rootPath = rootPath.replace(/\//g,"\\\\");
    }