Here, I have build a datatable from the a directory and set that datatable to gridview as datasource
Design:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</form>
Code behind:
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable("Mydata");
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("File", typeof(string));
dt.Columns.Add("Folder", typeof(string));
dt.Columns["ID"].AutoIncrement = true;
dt.Columns["ID"].AutoIncrementSeed = 1;
dt.Columns["ID"].AutoIncrementStep = 1;
ProcessDirectory(TextBox1.Text.Trim(), ref dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
public void ProcessDirectory(string targetDirectory, ref DataTable dt)
{
string[] fileEntries = Directory.GetFiles(targetDirectory);
foreach (string fileName in fileEntries)
{
FileInfo fi = new FileInfo(fileName);
dt.Rows.Add(null, fi.Name, targetDirectory);
}
string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach (string subdirectory in subdirectoryEntries)
{
ProcessDirectory(subdirectory, ref dt);
}
}