zoukankan      html  css  js  c++  java
  • 文件无法拷贝到Windows 7,Windows Server 2008 系统虚拟目录的问题

    最近需要实现将文件拷贝到操作系统的虚拟目录下,因为记得创建网站的时候,IS2010有看过一个<IISROOTFolder>变量,心想既然IS提供了这个变量,我只要把文件的目标位置设置成这个变量就可以了吧。

    结果XP,server 2003系统都可以拷贝成功,但由于Windows 7 ,Windows Server 2008 操作系统的虚拟目录是默认设置成%SystemDrive%\inetpub\wwwroot,而IS提供的<IISROOTFolder>变量却无法自动将%SystemDriver%解析成系统盘符,所以拷贝过程会报错。

    经过摸索,可以用以下方式解决:

    1. 思路:通过获取虚拟目录的路径在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp 的PathWWWRoot键值中的位置,如果该键值中存在%SystemDriver%的字符串,就通过脚本解析成系统盘符,然后将文件拷贝到最后解析后的虚拟目录中。

    2.工程类型:IS 2010 ,installscript

    3.定义的变量 :

    STRING  szKey, szDefaultPath, szFindMe,svValue,svReturnString,svResult,svSubStr;
    NUMBER i,AllReturn,PartlReturn;


    4.具体脚本:

    //获取虚拟目录在注册表中的位置

    if (RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE) = 0) then
      nvType=REGDB_STRING_EXPAND;
       nvSize=-1;
       szKey="SOFTWARE\\Microsoft\\InetStp";
       RegDBGetKeyValueEx (szKey, "PathWWWRoot", nvType, ReturnName, nvSize );
    endif; 


     

    //查找返回的注册表值中是否含有"SystemDrive",

    szFindMe = "SystemDrive";

    i = StrFind (ReturnName, szFindMe); 


    if (i>0) then   //大于0表示找到
          GetEnvVar ( "SystemDrive", svValue );  //转化成实际的系统盘符


         AllReturn = StrLength(ReturnName);   //获取整个注册表值的总长度

       PartlReturn = StrLength("SystemDriver");    //获取SystemDriver的长度


       StrSub(svSubStr, ReturnName,PartlReturn+1,AllReturn );   //返回从SystemDriver+1位到总长度中间的所有字符串,即”\inetpub\wwwroot”


       ReturnName=svValue+svSubStr;  //得到解析的虚拟目录的路径
     

    //将文件拷贝到解析后的路径下

       XCopyFile(SUPPORTDIR^"crossdomain.xml",ReturnName,LAAW_OPTION_WAIT|LAAW_OPTION_HIDDEN|COMP_UPDATE_DATE|COMP_UPDATE_VERSION);

    else

    //i小于等于0,表示得到的注册表的键值不包含“SystemDrive”,直接将文件拷贝到得到的路径中
         XCopyFile(SUPPORTDIR^"crossdomain.xml",ReturnName,LAAW_OPTION_WAIT|LAAW_OPTION_HIDDEN|COMP_UPDATE_DATE|COMP_UPDATE_VERSION);
    endif;

    版权声明:转载请以链接形式注明原始出处。    

  • 相关阅读:
    异步FIFO总结
    异常检测参考
    Java数据库连接技术
    Eclipse Decompiler不生效解决办法
    mysql常用操作
    时间序列预测——Tensorflow.Keras.LSTM
    AR(I)MA时间序列建模过程——步骤和python代码
    MySQL优化实例
    MySQL性能优化经验
    高性能MySQL笔记 第6章 查询性能优化
  • 原文地址:https://www.cnblogs.com/sabrinahuang/p/2044347.html
Copyright © 2011-2022 走看看