用c#创建一个虚拟目录

//创建一个虚拟目录
DirectoryEntry dirRoot = new DirectoryEntry("IIS://localhost/W3SVC/1/Root");
DirectoryEntries dirs = dirRoot.Children;
DirectoryEntry virtualDir = dirs.Add("VirtualChange", dirRoot.SchemaClassName);
object[] objs = new object[] { true };
virtualDir.Invoke("AppCreate", objs);
virtualDir.Properties["AppFriendlyName"][0] = "VirtualChange";
virtualDir.Properties["Path"].Value = "C://VirtualChange";
virtualDir.CommitChanges();
//启动aspnet_iis.exe程序
string fileName = Environment.GetEnvironmentVariable("windir") + @"/Microsoft.NET/Framework/v1.1.4322/aspnet_regiis.exe";
ProcessStartInfo startInfo = new ProcessStartInfo(fileName);
//处理目录路径
string path = virtualDir.Path.ToUpper();
int index = path.IndexOf("W3SVC");
path = path.Remove(0, index);
//启动aspnet_iis.exe程序,刷新教本映射
startInfo.Arguments = "-s " + path;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
string errors = process.StandardError.ReadToEnd();
if (errors != string.Empty)
  throw new Exception(errors);
Console.WriteLine(process.StandardOutput.ReadToEnd()); 

 

//假如虚拟目录名为"Webtest",先在项目中引用    
//System.DirectoryServices.dll,再  
using  System.DirectoryServices;  
protected  System.DirectoryServices.DirectoryEntry  dirroot;  
 
1、添加新的虚拟目录  
         DirectoryEntry  newVirDir  =  dirroot.Children.Add("Webtest","IIsWebVirtualDir");  
         newVirDir.Invoke("AppCreate",true);  
         newVirDir.CommitChanges();  
         dirroot.CommitChanges();  
2、更改虚拟目录属性  
       //虚拟目录的属性较常用的有:AccessRead,AccessWrite,AccessExecute,AccessScript,DefaultDoc,EnableDefaultDoc,Path等  
       
         DirectoryEntry  Dirport  =  dirroot.Children.Find("Webtest","IIsVirtualDir");  
         Dirport  .Properties["AccessRead"][0]  =  true;  
 
3、删除虚拟目录  
           DirectoryEntry  Dirport  =  dirroot.Children.Find("Webtest","IIsVirtualDir");  
           Dirport.Invoke("AppDelete",true);  
           dirroot.CommitChanges();  
或者:  
 
         object[]  part  =  new  object[2];  
         part[0]  =  "IIsWebVirtualDir";    
         part[1]  =  "Webtest";  
         dirroot.Invoke("Delete",part);  
         dirroot.CommitChanges();  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值