This Example Show How To Display Files, Directory and Sub Directories In GridView From Server side Folder In Asp.Net application using C# and Vb.Net.
Firstly, We have to use DirectoryInfo class under System.IO namespace.
Display all files and directories (folders) from sever in GridView in page load.
Create DataTable in code behind file (aspx.cs) with Name, Size and Type columns and assigning it as DataSource to Gridview.
Data in DataTable rows is coming from looping through all file and folder information stored in FileInfo or DirectoryInfo Arrays of GetFiles and GetDirectories methods of DirectoryInfo Class Object,
GetFiles method returns all the files and GetDirectories method returns all the directories or folder in server path specified.
If you want to show all files and folders in your giride GridView have to pass(*.*) and SearchOption.AllDirectories parameters in GetDirectories method,
if you want to display specific file type in gridview by specifying it’s extension instead of *.* (for example *.gif or filename.*). SearchOption.AllDirectories parameter search files in all sub directories.
protected void Page_Load(object sender, EventArgs e) { DataTable gridviewSource = DisplayFilesInGridView(); DataRow gridviewRow; //Get All Folders Or Directories and add in table DirectoryInfo directory = new DirectoryInfo(Server.MapPath("~/websource99.com/path")); DirectoryInfo[] subDirectories = directory.GetDirectories(); foreach (DirectoryInfo dirInfo in subDirectories) { gridviewRow = gridviewSource.NewRow(); gridviewRow["Name"] = dirInfo.Name; gridviewRow["Type"] = "Directory"; gridviewSource.Rows.Add(gridviewRow); } //Get files in all directories FileInfo[] files = directory.GetFiles("*.*", SearchOption.AllDirectories); foreach (FileInfo fileInfo in files) { gridviewRow = gridviewSource.NewRow(); gridviewRow["Name"] = fileInfo.Name; gridviewRow["Size"] = fileInfo.Length; gridviewRow["Type"] = "File"; gridviewSource.Rows.Add(gridviewRow); } gridviewDisplayFilesDirectories.DataSource = gridviewSource; gridviewDisplayFilesDirectories.DataBind(); } private DataTable DisplayFilesInGridView() { 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))); return dtgridviewSource; }