ASP.NET Tutorial/File Directory/DirectoryInfo
Содержание
Binding a GridView to directory files (C#)
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
protected void Page_Load(object sender, EventArgs e) { foreach (System.IO.DriveInfo drive in System.IO.DriveInfo.GetDrives()) { TreeNode node = new TreeNode(); node.Value = drive.Name; if (drive.IsReady) node.Text = drive.Name + " - (free space: " + drive.AvailableFreeSpace + ")"; else node.Text = drive.Name + " - (not ready)"; this.TreeView1.Nodes.Add(node); } } private void LoadDirectories(TreeNode parent, string path) { System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(path); try { foreach (System.IO.DirectoryInfo d in directory.GetDirectories()) { TreeNode node = new TreeNode(d.Name, d.FullName); parent.ChildNodes.Add(node); LoadDirectories(node, d.FullName); } } catch (System.UnauthorizedAccessException e) { parent.Text += " (Access Denied)"; } catch (Exception e) { parent.Text += " (Unknown Error: " + e.Message + ")"; } } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(this.TreeView1.SelectedNode.Value); this.GridView1.DataSource = directory.GetFiles(); this.GridView1.DataBind(); }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"> </asp:TreeView> |
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="None" CellPadding="3"> <Columns> <asp:BoundField DataField="Name" HeaderText="Name" HeaderStyle-HorizontalAlign="Left" HeaderStyle-Font-Bold="true" /> <asp:BoundField DataField="Length" HeaderText="Size" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" HeaderStyle-Font-Bold="true" /> <asp:BoundField DataField="LastWriteTime" HeaderText="Date Modified" HeaderStyle-HorizontalAlign="Left" HeaderStyle-Font-Bold="true" /> </Columns> </asp:GridView> |
</form>
</body> </html></source>
Binding a GridView to directory files (VB)
<source lang="csharp">
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) For Each drive As System.IO.DriveInfo In System.IO.DriveInfo.GetDrives() Dim node As TreeNode = New TreeNode() node.Value = drive.Name If (drive.IsReady) Then node.Text = drive.Name & " - (free space: " & drive.AvailableFreeSpace & ")" LoadDirectories(node, drive.Name) Else node.Text = drive.Name & " - (not ready)" End If Me.TreeView1.Nodes.Add(node) Next Me.TreeView1.CollapseAll() End Sub Private Sub LoadDirectories(ByVal parent As TreeNode, ByVal path As String) Dim directory As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(path) Try For Each d As System.IO.DirectoryInfo In directory.GetDirectories() Dim node As TreeNode = New TreeNode(d.Name, d.FullName) parent.ChildNodes.Add(node) LoadDirectories(node, d.FullName) Next Catch ex As System.UnauthorizedAccessException parent.Text += " (Access Denied)" Catch ex As Exception parent.Text += " (Unknown Error: " + ex.Message + ")" End Try End Sub Protected Sub TreeView1_SelectedNodeChanged _ (ByVal sender As Object, ByVal e As System.EventArgs) Dim directory As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(Me.TreeView1.SelectedNode.Value) Me.GridView1.DataSource = directory.GetFiles() Me.GridView1.DataBind() End Sub
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"> </asp:TreeView> |
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="None" CellPadding="3"> <Columns> <asp:BoundField DataField="Name" HeaderText="Name" HeaderStyle-HorizontalAlign="Left" HeaderStyle-Font-Bold="true" /> <asp:BoundField DataField="Length" HeaderText="Size" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" HeaderStyle-Font-Bold="true" /> <asp:BoundField DataField="LastWriteTime" HeaderText="Date Modified" HeaderStyle-HorizontalAlign="Left" HeaderStyle-Font-Bold="true" /> </Columns> </asp:GridView> |
</form>
</body> </html></source>
Manually enumerating directory files (C#)
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
protected void Page_Load(object sender, EventArgs e) { System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\"); foreach (System.IO.FileInfo file in dir.GetFiles("*.*")) { Response.Write(file.Name + "
"); Response.Write(file.LastWriteTime.ToString() + "
"); Response.Write(file.Attributes.ToString() + "
"); } }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
</form>
</body> </html></source>
Manually enumerating directory files (VB)
<source lang="csharp">
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo("C:\") For Each file As System.IO.FileInfo In dir.GetFiles("*.*") Response.Write(file.Name & "
") Response.Write(file.LastWriteTime.ToString() & "
") Response.Write(file.Attributes.ToString() & "
") Next End Sub
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
</form>
</body> </html></source>