[转]asp.net文件浏览器代码

前台代码:
<%@ Page Language="C#" CodeFile="webBrowser.aspx.cs" Inherits="webBrowser" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head id="Head1" runat="server">
    <title>文件浏览器</title>
</head>
<body>
    <form id="form1" runat="server">
        <div style="padding: 5px; border-right: 2px groove; border-top: 2px groove; font-size: 12px;
            z-index: 101; left: 16px; border-left: 2px groove; border-bottom: 2px groove;
            font-family: Verdana;">
            <asp:Button ID="btnUp" runat="server" Text=" 向 上 " OnClick="btnUp_Click" />
            
            <asp:Label ID="lblCurrentDir" runat="server" Text="当前目录:"></asp:Label>
            <table style="width: 100%">
                <tr>
                    <td valign="top" style="width: 786px; height: 222px">
                        <asp:GridView ID="gridDirList" runat="server" OnSelectedIndexChanged="gridDirList_SelectedIndexChanged"
                            Width="418px" GridLines="None" CellPadding="0" CellSpacing="1" DataKeyNames="FullName">
                            <HeaderStyle Font-Bold="True" BackColor="#CCFFFF" HorizontalAlign="Left"></HeaderStyle>
                            <Columns>
                                <asp:TemplateField>
                                    <ItemTemplate>
                                        <img src="folder.png" alt="Folder" />
                                    </ItemTemplate>
                                    <HeaderStyle Width="20px" />
                                </asp:TemplateField>
                                <asp:ButtonField DataTextField="Name" CommandName="Select" HeaderText="文件名">
                                    <HeaderStyle Width="200px" />
                                </asp:ButtonField>
                                <asp:BoundField HeaderText="大小">
                                    <HeaderStyle Width="50px" />
                                </asp:BoundField>
                                <asp:BoundField DataField="LastWriteTime" HeaderText="最后修改时间" />
                            </Columns>
                        </asp:GridView>
                        <asp:GridView ID="gridFileList" runat="server" OnSelectedIndexChanged="gridFileList_SelectedIndexChanged"
                            Width="417px" GridLines="None" CellPadding="0" CellSpacing="1" DataKeyNames="FullName">
                            <SelectedRowStyle BackColor="#C0FFFF"></SelectedRowStyle>
                            <HeaderStyle Font-Size="1px"></HeaderStyle>
                            <Columns>
                                <asp:TemplateField>
                                    <HeaderStyle Width="20px"></HeaderStyle>
                                    <ItemTemplate>
                                        <img src="file.png" alt="File" />
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:ButtonField DataTextField="Name" CommandName="Select">
                                    <HeaderStyle Width="200px"></HeaderStyle>
                                </asp:ButtonField>
                                <asp:BoundField DataField="Length">
                                    <HeaderStyle Width="50px"></HeaderStyle>
                                </asp:BoundField>
                                <asp:BoundField DataField="LastWriteTime"></asp:BoundField>
                            </Columns>
                        </asp:GridView>
                    </td>
                    <td valign="top" style="height: 222px">
                        <asp:FormView ID="formFileDetails" runat="server" >
                            <ItemTemplate>
                                <b>文件名
                                    <%# DataBinder.Eval(Container.DataItem, "Name") %>
                                </b>
                                <br>
                                创建时间
                                <%# DataBinder.Eval(Container.DataItem, "CreationTime") %>
                                <br>
                                最后修改时间
                                <%# DataBinder.Eval(Container.DataItem, "LastWriteTime") %>
                                <br>
                                最后访问时间
                                <%# DataBinder.Eval(Container.DataItem, "LastAccessTime") %>
                                <br>
                                文件类型 <i>
                                    <%# DataBinder.Eval(Container.DataItem, "Attributes") %>
                                </i>
                                <br>
                                <%# DataBinder.Eval(Container.DataItem, "Length") %>
                                字节
                                <hr>
                                <%# GetVersionInfoString(DataBinder.Eval(Container.DataItem, "FullName")) %>
                            </ItemTemplate>
                        </asp:FormView>
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>
后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Diagnostics;
public partial class webBrowser : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            ShowDirectoryContents(Server.MapPath("images"));
        }
    }
    private void ShowDirectoryContents(string path)
    {
        DirectoryInfo dir = new DirectoryInfo(path);
        FileInfo[] files = dir.GetFiles();
        DirectoryInfo[] dirs = dir.GetDirectories();
        lblCurrentDir.Text = "当前目录: " + path;
        gridDirList.DataSource = dirs;
        gridFileList.DataSource = files;
        Page.DataBind();
        gridFileList.SelectedIndex = -1;
        ViewState["CurrentPath"] = path;
    }
    protected void gridDirList_SelectedIndexChanged(object sender, EventArgs e)
    {
        string dir = (string)gridDirList.DataKeys[gridDirList.SelectedIndex].Value;
        ShowDirectoryContents(dir);
    }
    protected void gridFileList_SelectedIndexChanged(object sender, EventArgs e)
    {
        string file = (string)gridFileList.DataKeys[gridFileList.SelectedIndex].Value;
        ArrayList files = new ArrayList();
        files.Add(new FileInfo(file));
        formFileDetails.DataSource = files;
        formFileDetails.DataBind();
    }
    protected string GetVersionInfoString(object path)
    {
        FileVersionInfo info = FileVersionInfo.GetVersionInfo((string)path);
        return info.FileName + " " + info.FileVersion + "<br>" +
            info.ProductName + " " + info.ProductVersion;
    }
    protected void btnUp_Click(object sender, EventArgs e)
    {
        string path = (string)ViewState["CurrentPath"];
        path = Path.Combine(path, "..");
        path = Path.GetFullPath(path);
        ShowDirectoryContents(path);
    }
}
运行效果:
[转]asp.net文件浏览器代码 - icrid - icrid的博客

posted @ 2010-11-28 19:13  crid  阅读(213)  评论(0编辑  收藏  举报