`

c#建立虚拟目录

阅读更多

下面是创建虚拟目录的代码


const String constIISWebSiteRoot = "IIS://localhost/W3SVC/1/ROOT";
string virtualDirName = "virtualName";//虚拟目录名称
string physicalPath = @"c:\1";
DirectoryEntry root = new DirectoryEntry(constIISWebSiteRoot);

DirectoryEntry tbEntry = root.Children.Add(virtualDirName, root.SchemaClassName);


tbEntry.Properties["Path"][0] = physicalPath;
tbEntry.Invoke("AppCreate", true);

tbEntry.Properties["AccessRead"][0] = false;
tbEntry.Properties["ContentIndexed"][0] = true; ;
tbEntry.Properties["DefaultDoc"][0] = "index.ASP,Default.ASPx";
tbEntry.Properties["AppFriendlyName"][0] = virtualDirName;
tbEntry.Properties["AccessScript"][0] = true;
tbEntry.Properties["DontLog"][0] = true;
tbEntry.Properties["AuthFlags"][0] = 0;
tbEntry.Properties["AuthFlags"][0] = 1;
tbEntry.CommitChanges();



现在来解释一下这段代码:

创建虚拟目录需要使用System.DirectoryEntries命名空间下的DirectoryEntry类

首先声明一个DirecotryEntry的实例
DirectoryEntry root = new DirectoryEntry(constIISWebSiteRoot);

其中的参数constIISWebSiteRoot由一下几个部分组成
"IIS://"+domainName+"/W3SVC"+WebSiteNumber+"/ROOT"

WebSiteNumber由你要在哪个站点创建虚拟目录来决定,xp只能有一个站点,所以WebSiteNumber值为1,win2000Server 和win2003可以创建多个站点,所以WebSiteNumber的值可以大于1

然后创建DirecotryEntry实例的子节点 ,也就是要创建的虚拟目录
DirectoryEntry tbEntry = root.Children.Add(virtualDirName, root.SchemaClassName);

root.Children.Add(string namespace,string schemaClassName)方法会创建并返回一个DirectoryEntry的实例

下面的部分就是对这个新创建的节点进行操作了

tbEntry.Properties["Path"][0] = physicalPath; //设置虚拟目录指向的物理路径

tbEntry.Invoke("AppCreate", true); //

tbEntry.Properties["AccessRead"][0] = false; //设置读取权限

tbEntry.Properties["DefaultDoc"][0] = "index.ASP,Default.ASPx"; //设置默认文档,多值情况下中间用逗号分割

tbEntry.Properties["AppFriendlyName"][0] = virtualDirName; //应用程序名称

tbEntry.Properties["AccessScript"][0] = true; //执行权限

tbEntry.Properties["AuthFlags"][0] = 0; // 设置目录的安全性,0表示不允许匿名访问,1为允许,3为基本身份验证,7为windows继承身份验证

tbEntry.CommitChanges();//


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.DirectoryServices;

namespace IIS
{
public partial class Form1 : Form
{
DirectoryEntry root;

public Form1()
{
InitializeComponent();
}


private void Form1_Load(object sender, EventArgs e)
{
root
= new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT"); // 首先声明一个DirecotryEntry的实例
}


private void button1_Click(object sender, EventArgs e)
{
string VirtualDirName = textBox1.Text.Trim();
DirectoryEntry VirtualDir
= root.Children.Add(VirtualDirName, "IIsWebVirtualDir"); // 创建DirecotryEntry实例的子节点 ,也就是要创建的虚拟目录
string VirtualDirPath = root.Properties["Path"].Value.ToString() + @"\" + VirtualDirName;
//MessageBox.Show(VirtualDirPath);
VirtualDir.Properties["Path"][0] = VirtualDirPath; //设置虚拟目录指向的物理路径
VirtualDir.Invoke("AppCreate", true);
VirtualDir.Properties[
"AccessRead"][0] = true; //设置读取权限
VirtualDir.Properties["AccessExecute"][0] = true; //设置执行权限
VirtualDir.Properties["AccessWrite"][0] = true; //设置写入权限
VirtualDir.Properties["DefaultDoc"][0] = "default.aspx"; //设置默认文档,多值情况下中间用逗号分割
VirtualDir.Properties["AppFriendlyName"][0] = VirtualDirName; //应用程序名称
VirtualDir.Properties["AccessScript"][0] = true; //执行权限
VirtualDir.Properties["AuthFlags"][0] = 1; //设置目录的安全性,0表示不允许匿名访问,1为允许,3为基本身份验证,7为windows继承身份验证
VirtualDir.CommitChanges();
MessageBox.Show(
"建立成功!");
}


private void button2_Click(object sender, EventArgs e)
{
foreach (string Propertie in root.Properties.PropertyNames)
{
PropertyValueCollection ValueCollection
= root.Properties[Propertie];
for (int i = 0; i < ValueCollection.Count; i++)
{
string[] str ={ Propertie + "[" + i + "]", ValueCollection[i].ToString() };
ListViewItem item
= new ListViewItem(str);
listView1.Items.Add(item);
}

}

}

}

}


这里这是列举了部分属性,如果得到更多属性的信息可是访问DirecotryEntry.Properties属性
foreach (string Propertie in root.Properties.PropertyNames)
{
PropertyValueCollection ValueCollection
= root.Properties[Propertie];
for (int i = 0; i < ValueCollection.Count; i++)
{
string[] str ={ Propertie + "[" + i + "]", ValueCollection[i].ToString() };
ListViewItem item
= new ListViewItem(str);
listView1.Items.Add(item);
}

}


分享到:
评论

相关推荐

    C# 控制虚拟摄像头

    通过DirectShow,开发者可以构建视频捕获和播放应用程序,包括创建虚拟摄像头。你需要学习DirectShow的接口和类库,如Filter Graph Manager(FGM),Filters,Pins等。 2. **Media Foundation**:随着Windows Vista...

    创建虚拟目录

    ### 创建虚拟目录与网站:基于C#操作IIS #### 概述 本文将详细介绍如何使用C#语言通过Windows管理仪器(WMI)接口来创建虚拟目录和网站。虚拟目录是一种方便的方式,允许用户在不改变物理路径的情况下,将一个网站...

    C#动态创建WEB/FTP虚拟目录

    例如,如果我们要在默认网站下创建虚拟目录,可以使用`DirectoryEntry("IIS://localhost/W3SVC/1/Root")`,其中"1"代表默认Web站点的ID。 3. **创建虚拟目录对象**:接下来,我们可以通过调用DirectoryEntry的`...

    C# 创建IIS虚拟目录

    通过C#代码来创建IIS虚拟目录,可以制作网站发布程序,减短网站发布的时间!

    C# IIS 设置 C#代码操作IIS之虚拟目录

    以上就是使用C#操作IIS创建虚拟目录的基本流程。在实际开发中,你可能需要根据项目需求来调整代码,例如,处理异常、检查现有虚拟目录是否存在、批量创建虚拟目录等。通过熟练掌握这些技巧,你可以轻松地在应用程序...

    C#创建IIS虚拟目录的方法

    本文实例讲述了C#创建IIS虚拟目录的方法。分享给大家供大家参考。具体分析如下: DirectoryEntry是.Net给我们的一大礼物,他的名字我们就知道他的功能–目录入口。使用过ADSI的人都知道操作IIS,WinNT这些时,我们还...

    虚拟串口通信相关C#代码

    在本案例中,我们关注的是一个使用C#编程语言实现虚拟串口通信的示例。C#是一种面向对象的、类型安全的编程语言,常用于构建Windows桌面应用、Web应用以及游戏开发等领域。下面我们将详细探讨这个主题,涵盖标题和...

    C#实现虚拟桌面(多桌面)

    用C#实现的虚拟桌面,不同桌面的东西互不干扰。内含4桌面版和8桌面版源码,有快捷键,Ctrl+1,2,3,4.软件小巧,几十K。需要更改快捷键和其它功能的自己加上。

    C#实现创建,删除,查找,配置虚拟目录实例详解

    **创建虚拟目录** 创建虚拟目录的过程通常涉及以下几个步骤: 1. 首先,确保提供的虚拟目录别名和内容路径有效。如果别名为空或内容路径不存在,程序会返回错误提示。 2. 使用`DirectoryEntry`类查找指定的网站...

    C#IIS创建网站和虚拟目录源码

    4. **创建虚拟目录**:虚拟目录允许在不同物理路径之间建立映射。同样创建DirectoryEntry对象,指定虚拟目录的路径和父网站,设置属性如Path(物理路径)、AccessScript、AccessExecute等。然后调用Invoke("Create")...

    C#DataTable虚拟列表

    本篇文章将详细探讨"C# DataTable虚拟列表"的概念及其在实现ListView数据虚拟加载实例中的应用。 首先,DataTable是ADO.NET库中的一个关键组件,它允许程序在内存中存储和操作数据,就像一个临时数据库表。然而,当...

    C# 虚拟鼠标驱动源码

    在实际应用中,"C# 虚拟鼠标驱动源码"可以被开发者用来创建各种工具,比如自动化测试脚本,可以自动完成一系列的鼠标操作;或者是游戏外挂,模拟玩家的操作;甚至在无障碍软件中,帮助残障人士通过其他设备控制鼠标...

    C# 虚拟键盘 实例源码(系统操作)

    在创建虚拟键盘时,你需要定义类来代表键盘,并设计相应的属性和方法。这可能包括键位的布局、按键的响应事件以及输入字符的逻辑。C#中的控件如Button和Label会被用来模拟键盘上的每个键,它们的Click事件将被用来...

    虚拟键盘 c# 源代码 非常漂亮

    本文将深入探讨使用C#编程语言实现虚拟键盘的相关知识点,并基于提供的"虚拟键盘 c# 源代码"进行分析。 首先,C#是Microsoft开发的一种面向对象的编程语言,它在.NET框架下运行,广泛用于Windows桌面应用、Web应用...

    C#实现虚拟键盘

    本文将详细讲解如何使用C#编程语言实现一个虚拟键盘。 首先,理解C#的基础知识是必要的。C#(读作"C Sharp")是由微软公司开发的一种面向对象的编程语言,广泛用于Windows应用程序、游戏开发以及Web服务等。它的...

    C#写的虚拟键盘输入用户自定义控件+源码+调用实例

    总的来说,这个C#虚拟键盘控件及其源码为开发者提供了一个强大的工具,有助于创建具有自定义虚拟键盘功能的应用程序。无论是为了学习C#编程、提升项目功能还是进行创新设计,这个资源都能提供宝贵的帮助。通过对源码...

    基于c#的虚拟键盘

    总之,基于C#的虚拟键盘是一个结合了C#编程、WPF技术以及事件处理和用户交互设计的项目,它展示了如何利用.NET Framework的强大功能来创建实用的桌面应用程序。通过学习和理解这样的项目,开发者可以提升自己的UI...

    C#2005DOS操作 虚拟硬盘程序

    在本文中,我们将深入探讨如何使用C# 2005进行DOS操作,特别是创建和删除虚拟硬盘分区。这个程序的独特之处在于它利用了C#的特定功能,如调用外部程序(DOS命令)以及窗体的动态透明度控制,这为用户提供了更加友好...

    串口通讯C#源码工程含虚拟串口和串口通信工具

    VSPD,可能是这个压缩包中提供的虚拟串口驱动程序,它允许创建虚拟的串口对,使得两个应用程序可以像使用物理串口一样进行通信,而无需实际的物理接口。这对于测试、调试或在没有可用物理串口的现代计算机上模拟串口...

Global site tag (gtag.js) - Google Analytics