使用System.IO名称空间下的DriveInfo类别,可以获取磁盘相关信息。
代码
private DataTable GetDriveInfo(string driveName)
{
//new一个实例表
DataTable dataTable = new DataTable();
DataColumn dataColumn;
//new一个字段
dataColumn = new DataColumn();
//字段存储的数据类型
dataColumn.DataType = Type.GetType("System.String");
//Gets the name of a drive.
dataColumn.ColumnName = "Name";
//把这个字段添加至表中。
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Indicates the amount of available free space on a drive.
dataColumn.ColumnName = "AvailableFreeSpace";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the name of the file system, such as NTFS or FAT32.
dataColumn.ColumnName = "Format";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the drive type.
dataColumn.ColumnName = "Type";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets a value indicating whether a drive is ready.
dataColumn.ColumnName = "Ready";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the root directory of a drive.
dataColumn.ColumnName = "RootDirectory";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the total amount of free space available on a drive.
dataColumn.ColumnName = "FreeSpace";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the total size of storage space on a drive.
dataColumn.ColumnName = "TotalSize";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets or sets the volume label of a drive.
dataColumn.ColumnName = "Volume";
dataTable.Columns.Add(dataColumn);
//new一个DriveInfo对象,并传入盘符
DriveInfo objDi = new DriveInfo(driveName);
DataRow dataRow;
dataRow = dataTable.NewRow(); //表创建一行
//下面是为字段赋值
dataRow["Name"] = objDi.Name.ToString();
dataRow["AvailableFreeSpace"] = objDi.AvailableFreeSpace.ToString();
dataRow["Format"] = objDi.DriveFormat.ToString();
dataRow["Type"] = objDi.DriveType.ToString();
dataRow["Ready"] = objDi.IsReady.ToString();
dataRow["RootDirectory"] = objDi.RootDirectory.ToString();
dataRow["FreeSpace"] = objDi.TotalFreeSpace.ToString();
dataRow["TotalSize"] = objDi.TotalSize.ToString();
dataRow["Volume"] = objDi.VolumeLabel.ToString();
//把行添加至表
dataTable.Rows.Add(dataRow);
dataTable.AcceptChanges();
return dataTable;
}
{
//new一个实例表
DataTable dataTable = new DataTable();
DataColumn dataColumn;
//new一个字段
dataColumn = new DataColumn();
//字段存储的数据类型
dataColumn.DataType = Type.GetType("System.String");
//Gets the name of a drive.
dataColumn.ColumnName = "Name";
//把这个字段添加至表中。
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Indicates the amount of available free space on a drive.
dataColumn.ColumnName = "AvailableFreeSpace";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the name of the file system, such as NTFS or FAT32.
dataColumn.ColumnName = "Format";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the drive type.
dataColumn.ColumnName = "Type";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets a value indicating whether a drive is ready.
dataColumn.ColumnName = "Ready";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the root directory of a drive.
dataColumn.ColumnName = "RootDirectory";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the total amount of free space available on a drive.
dataColumn.ColumnName = "FreeSpace";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets the total size of storage space on a drive.
dataColumn.ColumnName = "TotalSize";
dataTable.Columns.Add(dataColumn);
dataColumn = new DataColumn();
dataColumn.DataType = Type.GetType("System.String");
//Gets or sets the volume label of a drive.
dataColumn.ColumnName = "Volume";
dataTable.Columns.Add(dataColumn);
//new一个DriveInfo对象,并传入盘符
DriveInfo objDi = new DriveInfo(driveName);
DataRow dataRow;
dataRow = dataTable.NewRow(); //表创建一行
//下面是为字段赋值
dataRow["Name"] = objDi.Name.ToString();
dataRow["AvailableFreeSpace"] = objDi.AvailableFreeSpace.ToString();
dataRow["Format"] = objDi.DriveFormat.ToString();
dataRow["Type"] = objDi.DriveType.ToString();
dataRow["Ready"] = objDi.IsReady.ToString();
dataRow["RootDirectory"] = objDi.RootDirectory.ToString();
dataRow["FreeSpace"] = objDi.TotalFreeSpace.ToString();
dataRow["TotalSize"] = objDi.TotalSize.ToString();
dataRow["Volume"] = objDi.VolumeLabel.ToString();
//把行添加至表
dataTable.Rows.Add(dataRow);
dataTable.AcceptChanges();
return dataTable;
}
指定显示C盘信息至GridView控件上:
代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Data_Binding();
}
}
private void Data_Binding()
{
//传入C盘
this.GridView1.DataSource = GetDriveInfo("c");
this.GridView1.DataBind();
}
{
if (!IsPostBack)
{
Data_Binding();
}
}
private void Data_Binding()
{
//传入C盘
this.GridView1.DataSource = GetDriveInfo("c");
this.GridView1.DataBind();
}
或者您可以显示所有磁盘,显示RadioButtonList控件上:
代码
<asp:RadioButtonList ID="rblDriveList" runat="server" AutoPostBack="true" RepeatDirection="Horizontal" RepeatColumns="10" OnSelectedIndexChanged="rblDriveList_SelectedIndexChanged">
</asp:RadioButtonList>
</asp:RadioButtonList>
给RadioButtonList控件绑定数据源:
代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Data_Binding();
}
}
private void Data_Binding()
{
List<string> driveList = new List<string>();
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo di in allDrives)
{
driveList.Add(di.ToString().Substring(0,1));
}
this.rblDriveList.DataSource = driveList;
this.rblDriveList.DataBind();
}
{
if (!IsPostBack)
{
Data_Binding();
}
}
private void Data_Binding()
{
List<string> driveList = new List<string>();
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo di in allDrives)
{
driveList.Add(di.ToString().Substring(0,1));
}
this.rblDriveList.DataSource = driveList;
this.rblDriveList.DataBind();
}
点击磁盘盘符显示相应盘符信息:
代码
protected void rblDriveList_SelectedIndexChanged(object sender, EventArgs e)
{
if (rblDriveList.SelectedItem.Value == string.Empty) return;
this.GridView1.DataSource = GetDriveInfo(rblDriveList.SelectedItem.Value);
this.GridView1.DataBind();
}
{
if (rblDriveList.SelectedItem.Value == string.Empty) return;
this.GridView1.DataSource = GetDriveInfo(rblDriveList.SelectedItem.Value);
this.GridView1.DataBind();
}