如何获取虚拟目录对应的物理路径?

最近在做自动安装BS系统时,遇到需要获取虚拟目录对应的物理路径的问题,稍微整理一下,分享给大家!

       ///  
        /// 获取虚拟目录对应的物理路径 
        ///  
        /// 所在站点端口端口号 
        /// 虚拟目录名称 
        /// 
  
   
        public string GetVirtualDirectory(string _portNumber, string _name)
        {
            // 获取网站的标识符,默认为1
            string identifier = null;

            DirectoryEntry root = new DirectoryEntry("IIS://LOCALHOST/W3SVC");
            foreach (DirectoryEntry e in root.Children)
            {
                if (e.SchemaClassName == "IIsWebServer")
                {
                    foreach (object property in e.Properties["ServerBindings"])
                    {
                        if (property.Equals(":" + _portNumber + ":"))
                        {
                            identifier = e.Name;
			    break;
                        }
                    }

		    if(identifier != null)
		    {
		        break;
		    }
                }
            }

	    if(identifier != null)
	    {
	        identifier = "1";
	    }

            DirectoryEntry de = new DirectoryEntry("IIS://LOCALHOST/W3SVC/" + identifier + "/ROOT/" + _name);
            string path = (string)de.Properties["Path"].Value;
            return path;
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值