This example explains How To Delete Files Folders Directory And Sub Directories From Server In Asp.Net Using C# And VB.NET
I have placed one GridView on the aspx page to Display Directory or Contents of SubDirectory from server and have added one ButtonField In GridView Source for deletion when user clicks on button.
I have created one DataTable which is getting data with help of DirectoryInfo class.
I'm Deleting Files in RowCommand usingSystem.IO.File.Delete and Directories or folders using System.IO.Directory.Delete methods.
HTML SOURCE OF GRIDVIEW
C# CODE
VB.NET CODE
I have placed one GridView on the aspx page to Display Directory or Contents of SubDirectory from server and have added one ButtonField In GridView Source for deletion when user clicks on button.
I have created one DataTable which is getting data with help of DirectoryInfo class.
I'm Deleting Files in RowCommand usingSystem.IO.File.Delete and Directories or folders using System.IO.Directory.Delete methods.
HTML SOURCE OF GRIDVIEW
1: <asp:GridView ID="gridviewDeleteFiles" runat="server"
2: onrowcommand="gridviewDeleteFiles_RowCommand"
3: onrowdeleting="gridviewDeleteFiles_RowDeleting">
4: <Columns>
5: <asp:ButtonField Text="Delete" CommandName="Delete"/>
6: </Columns>
7: </asp:GridView>
C# CODE
using System.Data;
using System.IO;
protected void Page_Load(object sender, EventArgs e)
{
FillGridView();
}
private void FillGridView()
{
DataTable dtGridViewSource = new DataTable();
dtGridViewSource.Columns.Add(new DataColumn("Name", typeof(System.String)));
dtGridViewSource.Columns.Add(new DataColumn("Size", typeof(System.String)));
dtGridViewSource.Columns.Add(new DataColumn("Type", typeof(System.String)));
dtGridViewSource.Columns.Add(new DataColumn("Path", typeof(System.String)));
DataRow gridviewRow;
//Get All Folders Or Directories and add in table
DirectoryInfo directory = new DirectoryInfo(Server.MapPath("~/csharpdotnetfreak.blogspot.com"));
DirectoryInfo[] subDirectories = directory.GetDirectories();
foreach (DirectoryInfo dirInfo in subDirectories)
{
gridviewRow = dtGridViewSource.NewRow();
gridviewRow["Name"] = dirInfo.Name;
gridviewRow["Type"] = "Directory";
gridviewRow["Path"] = dirInfo.FullName;
dtGridViewSource.Rows.Add(gridviewRow);
}
//Get files in all directories
FileInfo[] files = directory.GetFiles("*.*", SearchOption.AllDirectories);
foreach (FileInfo fileInfo in files)
{
gridviewRow = dtGridViewSource.NewRow();
gridviewRow["Name"] = fileInfo.Name;
gridviewRow["Size"] = fileInfo.Length;
gridviewRow["Type"] = "File";
gridviewRow["Path"] = fileInfo.FullName;
dtGridViewSource.Rows.Add(gridviewRow);
}
gridviewDeleteFiles.DataSource = dtGridViewSource;
gridviewDeleteFiles.DataBind();
}
protected void gridviewDeleteFiles_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
GridViewRow row = gridviewDeleteFiles.Rows[Convert.ToInt32(e.CommandArgument)];
string fileName = row.Cells[1].Text;
string filePath = row.Cells[4].Text;
string type = row.Cells[3].Text;
if (type == "File")
{
System.IO.File.Delete(filePath);
}
else if (type == "Directory")
{
System.IO.Directory.Delete(filePath, true);
}
}
FillGridView();
}
VB.NET CODE
Protected Sub Page_Load(sender As Object, e As EventArgs)
FillGridView()
End Sub
Private Sub FillGridView()
Dim dtGridViewSource As New DataTable()
dtGridViewSource.Columns.Add(New DataColumn("Name", GetType(System.String)))
dtGridViewSource.Columns.Add(New DataColumn("Size", GetType(System.String)))
dtGridViewSource.Columns.Add(New DataColumn("Type", GetType(System.String)))
dtGridViewSource.Columns.Add(New DataColumn("Path", GetType(System.String)))
Dim gridviewRow As DataRow
'Get All Folders Or Directories and add in table
Dim directory As New DirectoryInfo(Server.MapPath("~/csharpdotnetfreak.blogspot.com"))
Dim subDirectories As DirectoryInfo() = directory.GetDirectories()
For Each dirInfo As DirectoryInfo In subDirectories
gridviewRow = dtGridViewSource.NewRow()
gridviewRow("Name") = dirInfo.Name
gridviewRow("Type") = "Directory"
gridviewRow("Path") = dirInfo.FullName
dtGridViewSource.Rows.Add(gridviewRow)
Next
'Get files in all directories
Dim files As FileInfo() = directory.GetFiles("*.*", SearchOption.AllDirectories)
For Each fileInfo As FileInfo In files
gridviewRow = dtGridViewSource.NewRow()
gridviewRow("Name") = fileInfo.Name
gridviewRow("Size") = fileInfo.Length
gridviewRow("Type") = "File"
gridviewRow("Path") = fileInfo.FullName
dtGridViewSource.Rows.Add(gridviewRow)
Next
gridviewDeleteFiles.DataSource = dtGridViewSource
gridviewDeleteFiles.DataBind()
End Sub
Protected Sub gridviewDeleteFiles_RowCommand(sender As Object, e As GridViewCommandEventArgs)
If e.CommandName = "Delete" Then
Dim row As GridViewRow = gridviewDeleteFiles.Rows(Convert.ToInt32(e.CommandArgument))
Dim fileName As String = row.Cells(1).Text
Dim filePath As String = row.Cells(4).Text
Dim type As String = row.Cells(3).Text
If type = "File" Then
System.IO.File.Delete(filePath)
ElseIf type = "Directory" Then
System.IO.Directory.Delete(filePath, True)
End If
End If
FillGridView()
End Sub
If you like this post than join us or share


2 comments:
Nice One Dude
thank you for this great code,
is there a way to put confirm geleting message before the delete command ???
Post a Comment