ASPNET文件操作:
1、 DriveInfo类(磁盘读取)
foreach (DriveInfo dv in DriveInfo.GetDrives())//
{
TreeNode tr = new TreeNode();
tr.Value = dv.Name;
if (dv.IsReady)
{
tr.Text = dv.Name + "-空余空间=" + dv.AvailableFreeSpace;
}
else
{
tr.Text = dv.Name + "-是光盘";
}
this.TreeView1.Nodes.Add(tr);
}
2、 DirectoryInfo(文件夹操作类)
//递归遍历
public void loadDirectory(TreeNode node,string path)
{
DirectoryInfo dr = new DirectoryInfo(path);
try
{
foreach (DirectoryInfo drs in dr.GetDirectories())//遍历所目录下文件t
{
TreeNode p = new TreeNode(drs.Name, drs.FullName);
node.ChildNodes.Add(p);
loadDirectory(p, drs.FullName);
}
}
catch (Exception)
{
node.Text = "不能访问";
}
}
3、 实例(点击展开,非一次全部遍历)
树:
<asp:TreeView ID="TreeView1" runat="server" OnTreeNodePopulate="TreeView1_TreeNodePopulate"
PopulateNodesFromClient="true">
<Nodes>
<asp:TreeNode Value="d:\" Expanded="false" PopulateOnDemand="true" Text="d:\"></asp:TreeNode>
</Nodes>
</asp:TreeView>
后台代码:
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
DirectoryInfo info = new DirectoryInfo(e.Node.Value);
foreach (DirectoryInfo directory in info.GetDirectories())
{
TreeNode newNode = new TreeNode();
newNode.PopulateOnDemand = true;
newNode.Text = directory.Name;
newNode.Value = directory.FullName;
e.Node.ChildNodes.Add(newNode);
}
//FileInfo用法
//foreach (FileInfo file in info.GetFiles())
//{
// TreeNode newNode = new TreeNode();
// newNode.Text = file.Name;
// newNode.Value = file.FullName;
// e.Node.ChildNodes.Add(newNode);
//}
}