Create
a new Visual C# Windows Forms Project and add controls on the default
form as shown below.
Figure 1: User interface
The windows form allows the user to specify the server name on which
to create the virtual directory, the virtual directory name, the virtual
directory path, the type of virtual directory (FTP or Web). We will
now add the code to create the virtual directory when the button is
clicked. The code is specified in the code listing below.
We first determine if the user has selected to create an FTP virtual
directory or a Web Virtual Directory. Based on this selection, we
set the values for the schema name and a part of the path for the
IIS root to create the node in. We now create a DirectoryEntry object
for the root of the IIS directory on the server specified by the user
which points to the web or ftp root. We then add a node to the children
collection of the root node and set the value for the Path property
of the newly created node. If the user selected to create a web virtual
directory, we set the new node as an application. We then commit the
changes and close the directory entry nodes. Finally we display the
status – whether successful or error, to the user. You need to make
sure that the user has the privileges to create the new virtual directories
before running the sample.
private void button1_Click(object sender, System.EventArgs e)
{
string strSchema= "";
string strRootSubPath = "";
if (radioButton1.Checked)
{
strSchema = "IIsWebVirtualDir";
strRootSubPath = "/W3SVC/1/Root";
}
if (radioButton2.Checked)
{
strSchema = "IIsFtpVirtualDir";
strRootSubPath = "/MSFTPSVC/1/Root";
}
if (strSchema == "")
{
strSchema = "IIsWebVirtualDir";
strRootSubPath = "/W3SVC/1/Root";
}
DirectoryEntry deRoot= new DirectoryEntry("IIS://" + txtServer.Text
+ strRootSubPath);
try
{
deRoot.RefreshCache();
DirectoryEntry deNewVDir = deRoot.Children.Add(txtVDirName.Text,strSchema);
deNewVDir.Properties["Path"].Insert(0,txtVDir.Text);
deNewVDir.CommitChanges();
deRoot.CommitChanges();
// Create a Application
if (strSchema == "IIsWebVirtualDir")
deNewVDir.Invoke("AppCreate",true);
// Save Changes
deNewVDir.CommitChanges();
deRoot.CommitChanges();
deNewVDir.Close();
deRoot.Close();
lblStatus.Text = "Virtual Directory " + txtVDirName.Text + "(" + txtVDir.Text
+ ") has been created";
}
catch (Exception ex)
{
lblStatus.Text = "Error: " + ex.Message;
}
}
Code Listing : Button Click event handler code – create a new virtual
directory.
Please refer to the complete code listing available for download at
the top of the article.
Figure : Creating a virtual directory from our program. This creates
a FTP Virtual directory named “TestFTPDir” pointing to path “C:\Temp”
Conclusion:
In this article, we saw how to create FTP and Web virtual directories
programmatically. This can be very useful in deployment scenarios.
*Origninally published at CSharpCorner
About the Author:
Dipal Choksi is a Bachelor of Engineering (Computer Science). She
has industry experience in team-effort projects and also as an individual
contributor. She has worked on Visual Basic, Visual C++, Java, Directory
Services, ASP projects
Read more about Dipal: http://www.c-sharpcorner.com/members/DipalC.asp
Read this Newsletter at: http://www.cprogrammingtrends.com/2003/1023.html |
|
| From
the Forum: |
| linking databases |
| i'm a student and i'm working on a univeristy website trying to create a means by which the students can view their academic results on this site. i needed to know how one links a database to a website. ...
|
|