A quick and easy way to load files and directories contained in a specified folder into a DataTable.
using System;using System.Data;using System.IO;namespace KeithRull.Utilities{ /// <summary> /// A collection of methods that handles the processing of FileSystem data and information /// </summary> public sealed class FileSytem { private FileSytem(){} /// <summary> /// A method that accepts a string that points to a directory, /// reads that folders contents and convert that data into a DataTable /// </summary> /// <param name="directory">the directory to browse</param> /// <returns>a DataTable containing the information about the supplied directory</returns> public static DataTable FileSystemToDataTable(string directory) { //read the folder DirectoryInfo directoryInfo = new DirectoryInfo(directory); //create our datatable that would hold the list //of folders in the specified directory DataTable filesystem = new DataTable(); /* Add the columns to our datatable * You can add as many colums as you like. * for this demo, we will just be adding this columns * */ filesystem.Columns.Add(new DataColumn("Name")); filesystem.Columns.Add(new DataColumn("FullName")); filesystem.Columns.Add(new DataColumn("CreationTime")); filesystem.Columns.Add(new DataColumn("LastWriteTime")); //loop thru each FileSystemInfo object in the specified directory foreach (FileSystemInfo fileSystemInfo in directoryInfo.GetFileSystemInfos()) { //create a new row in ould filesystem table DataRow dataRow = filesystem.NewRow(); //assign the values to our table members dataRow["Name"] = fileSystemInfo.Name; dataRow["FullName"] = fileSystemInfo.FullName; dataRow["CreationTime"] = fileSystemInfo.CreationTime; dataRow["LastWriteTime"] = fileSystemInfo.LastWriteTime; // add the datarow to our datatable filesystem.Rows.Add(dataRow); } //return our table return filesystem; } }}
Sample usage would be as follows:
string directory = Server.MapPath(""); //load a specific path in our web serverDataGrid1.DataSource = KeithRull.Utilities.FileSytem.FileSystemToDataTable(directory);DataGrid1.DataBind();
or
string directory = "c:\"; //just point to a folder in the machineDataGrid1.DataSource = KeithRull.Utilities.FileSytem.FileSystemToDataTable(directory);DataGrid1.DataBind();
Powered by: newtelligence dasBlog 2.3.9074.18820
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
E-mail
Theme design by Jelle Druyts