zoukankan      html  css  js  c++  java
  • 对虚拟目录的操作(转)

    一、查看虚拟目录是否存在 
    private bool IsExitesVirtualDir(string virtualdirname) 

       
    bool exited =false
       DirectoryEntry _entry 
    = new DirectoryEntry("IIS://localhost/W3SVC/1/Root"); 
       DirectoryEntries _entries 
    = _entry.Children; 
       
    foreach(DirectoryEntry _cen in _entries) 
       

        
    if(_cen.Name == virtualdirname) 
         exited 
    = true
       }
     
       
    return exited; 
    }
     
    其中virtualdirpath指要建立的虚拟目录名称; 

    二、新增虚拟目录 
    private void CreateVirtualDir(string virtualdirname,string logicDir) 

       
    if(IsExitesVirtualDir(virtualdirname)) 
            DeleteVirtualDir(virtualdirname); 

       DirectoryEntry _rootEntry ; 
       _rootEntry 
    = new DirectoryEntry("IIS://localhost/W3SVC/1/root"); 
       DirectoryEntry _newVirDir; 
       _newVirDir 
    = _rootEntry .Children.Add(virtualdirpath,"IIsWebVirtualDir"); 
       _newVirDir.Invoke(
    "AppCreate",true); 
       _newVirDir.CommitChanges(); 
       _rootEntry .CommitChanges(); 
       _newVirDir.Properties[
    "AnonymousPasswordSync"][0= true
       _newVirDir.Properties[
    "Path"][0= logicDir + @"virtualdirentry\virtualname\"
       _newVirDir.CommitChanges(); 
    }
     
    _newVirDir.Properties[
    "Path"][0] 的值为虚拟目录对应的物理地址; 

    三、更新虚拟目录 
    public void Update(string virtualdirname) 

       
    //判断需要更改的虚拟目录是否存在 
       if(_IsExitesVirtualDir(virtualdirname)) 
       

        DirectoryEntry _rootEntry ; 
        _rootEntry 
    = new DirectoryEntry("IIS://localhost/W3SVC/1/root"); 
        DirectoryEntry ode 
    = _rootEntry.Children.Find(virtualdirname,"IIsWebVirtualDir"); 
        UpdateDirInfo(ode); 
       }
     
    }
     
    private void UpdateDirInfo(DirectoryEntry de) 

       de.Properties[
    "AnonymousUserName"][0= AnonymousUserName; 
       de.Properties[
    "AnonymousUserPass"][0= AnonymousUserPass; 
       de.Properties[
    "AccessRead"][0= boolen; 
       de.Properties[
    "AccessExecute"][0= boolen; 
       de.Properties[
    "AccessWrite"][0= boolen; 
       de.Properties[
    "AuthBasic"][0= boolen; 
       de.Properties[
    "AuthNTLM"][0= boolen; 
       de.Properties[
    "ContentIndexed"][0= boolen; 
       de.Properties[
    "EnableDefaultDoc"][0= boolen; 
       de.Properties[
    "EnableDirBrowsing"][0= boolen; 
       de.Properties[
    "AccessSSL"][0= boolen; 
       de.Properties[
    "AccessScript"][0= boolen; 
       de.Properties[
    "DefaultDoc"][0= DefaultDoc; 
       de.Properties[
    "Path"][0= Path; 
       de.CommitChanges(); 
    }
     

    四、删除虚拟目录 
    private void DeleteVirtualDir(string virtualdirname) 

       DirectoryEntry _rootEntry ; 
       _rootEntry 
    = new DirectoryEntry("IIS://localhost/W3SVC/1/root"); 
       
    object[] paras = new object[2]; 
       paras[
    0= "IIsVirtualDir"
       paras[
    1= virtualdirname; 
       _rootEntry .Invoke(
    "Delete",paras); 
       _rootEntry .CommitChanges(); 
    }
     

    作者:wpf之家
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    PHP实现无限极分类
    html2canvas生成并下载图片
    一次线上问题引发的过程回顾和思考,以更换两台服务器结束
    Intellij IDEA启动项目报Command line is too long. Shorten command line for XXXApplication or also for
    mq 消费消息 与发送消息传参问题
    idea 创建不了 java 文件
    Java switch 中如何使用枚举?
    Collections排序
    在idea 设置 git 的用户名
    mongodb添加字段和创建自增主键
  • 原文地址:https://www.cnblogs.com/wpf123/p/2347372.html
Copyright © 2011-2022 走看看