This way
<asp:GridView ID = "gvDirectories" runat="server" AutoGenerateColumns = "false">
<Columns>
<asp:BoundField DataField = "Text" HeaderText = "Directory Name" />
<asp:BoundField DataField = "Value" HeaderText = "Directory Size" />
</Columns>
</asp:GridView>
using System.IO;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
string path = "C:\\SWTOOLS";
List<ListItem> directories = new List<ListItem>();
foreach (string directoryPath in Directory.GetDirectories(path))
{
directories.Add(new ListItem(new DirectoryInfo(directoryPath).Name, GetDirectorySize(directoryPath)));
}
gvDirectories.DataSource = directories;
gvDirectories.DataBind();
}
}
private string GetDirectorySize(string path)
{
DirectoryInfo info = new DirectoryInfo(path);
long size = 0;
foreach (string file in Directory.GetFiles(path, "*.*", SearchOption.AllDirectories))
{
size += new FileInfo(file).Length;
}
return Math.Round((double)size / (double)(1024 * 1024), 2).ToString() + " MB";
}