我是靠谱客的博主 任性小虾米,最近开发中收集的这篇文章主要介绍对虚拟目录的操作(转) ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、查看虚拟目录是否存在
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();
}
 

最后

以上就是任性小虾米为你收集整理的对虚拟目录的操作(转) 的全部内容,希望文章能够帮你解决对虚拟目录的操作(转) 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部