zoukankan      html  css  js  c++  java
  • asp.net(C#)读取文件夹和子文件夹下所有文件,绑定到GRIDVIEW并排序 .

    Asp部分:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyFiles_List.aspx.cs" Inherits="lbWeb.webAdmin.MyFiles_List" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

     

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server">

        <title>无标题页</title>

            <script language="javascript" type="text/javascript">   

    function selectAll(obj)    {   

           var theTable = obj.parentElement.parentElement.parentElement;     

           var i;    

           var j = obj.parentElement.cellIndex;       

           for(i=0;i<theTable.rows.length;i++)    

          {          

             var objCheckBox = theTable.rows[i].cells[j].firstChild;   

             if(objCheckBox.checked!=null)objCheckBox.checked = obj.checked;    

          }  

    }  

     </script>

    </head>

    <body>

        <form id="form1" runat="server">

        <div>

        <table width="100%">

          <tr>

            <td>

            文件管理       

            </td>

          </tr>

          <tr>

            <td>

                 <asp:GridView Width="100%" runat="server" ID="gridFileList"

                     AutoGenerateColumns="false" CellPadding="4" ForeColor="#333333"

                     GridLines="None" OnRowDataBound="gridFileList_RowDataBound" AllowPaging="True"

                     PageSize="6" OnPageIndexChanging="gridFileList_PageIndexChanging"

                     AllowSorting="True" onsorting="gridFileList_Sorting" >

            <Columns>

            <asp:TemplateField>

            <ItemStyle HorizontalAlign="Center" />

                    <HeaderTemplate>&nbsp;<input id="CheckAll" type="checkbox" onclick="selectAll(this);" />全选</HeaderTemplate>              

                    <ItemTemplate>

                        <asp:CheckBox runat="server" ID="chkDel" />

                    </ItemTemplate>

                </asp:TemplateField>

                <asp:TemplateField HeaderText="序号" InsertVisible="False">

                  <ItemStyle HorizontalAlign="Center" />

                 <ItemTemplate>

                     <asp:Label ID="Label2" runat="server" Text='<%# this.gridFileList.PageIndex * this.gridFileList.PageSize + this.gridFileList.Rows.Count + 1%>'/>

                </ItemTemplate>

                </asp:TemplateField> 

                 <asp:TemplateField HeaderText="图片" InsertVisible="False">

                  <ItemStyle HorizontalAlign="Center" />

                 <ItemTemplate>

                     <asp:Image ID="ImgPath" runat="server" Width="150" Height="80" />

                </ItemTemplate>

                </asp:TemplateField> 

               <asp:BoundField DataField="FileName" HeaderText="名称" SortExpression="FileName" >

                    <ItemStyle HorizontalAlign="Center" />

                </asp:BoundField> 

                <asp:BoundField DataField="FileLength" HeaderText="大小" SortExpression="FileLength" >

                    <ItemStyle HorizontalAlign="Center" />

                </asp:BoundField> 

               <asp:BoundField DataField="FilePath" ShowHeader="false">

                    <ItemStyle HorizontalAlign="Center" />

                </asp:BoundField>

                <asp:BoundField DataField="FileLastWriteTime" HeaderText="修改时间" SortExpression="FileLastWriteTime" >

                    <ItemStyle HorizontalAlign="Center" />

                </asp:BoundField> 

            </Columns>

        </asp:GridView>

            </td>

          </tr>

                  <tr>

                <td align="center" class="sub_bg">

               

                <asp:Button runat="server" ID="btnAdd" Text="添 加" OnClick="btnAdd_Click" />&nbsp;

                <asp:Button runat="server" ID="btnDel" Text="删 除" OnClick="btnDel_Click" OnClientClick="return confirm('提示:确定要删除吗?');" />

                </td>

            </tr>

         </table>

        </div>

        </form>

    </body>

    </html>

     

     

    CS部分:

    using System;

    using System.Collections;

    using System.Configuration;

    using System.Data;

    using System.Web;

    using System.Web.Security;

    using System.Web.UI;

    using System.Web.UI.HtmlControls;

    using System.Web.UI.WebControls;

    using System.Web.UI.WebControls.WebParts;

    using System.IO;

    using System.Text;

     

    namespace lbWeb.webAdmin

    {

        public partial class MyFiles_List : System.Web.UI.Page

        {

            protected string File_List="";

            protected void Page_Load(object sender, EventArgs e)

            {

                if (!IsPostBack)

                {

                    //设定初始排序字段为文件修改时间FileLastWriteTime

                    gridFileList.Attributes.Add("SortExpression", "FileLastWriteTime");

                    gridFileList.Attributes.Add("SortDirection", "DESC");     

                    BindGrid();

                }

            }

            ///<summary>

            ///要显示的文件扩展名

            ///</summary>

            ///<param name="type"></param>

            ///<returns></returns>

            public bool checkFileType(string type)

            {

                bool FileType = false;

                string[] type_ = new string[4];

                type = type.ToLower();

                type_[0] = ".jpg";

                type_[1] = ".gif";

                type_[2] = ".jpeg";

                type_[3] = ".png";

                //可在此添加上传文件的后缀名

                for (int i = 0; i < type_.Length; i++)

                {

                    if (type.Contains(type_[i].ToString()))

                    {

                        FileType = true;

                    }

                }

                return FileType;

            }

            ///<summary>

            ///遍文件夹下的所有子文件夹下的文件

            ///</summary>

            ///<param name="ObjDirPath">文件夹</param>

            public void GetFiles(string ObjDirPath)

            {

                DirectoryInfo SourceDir = new DirectoryInfo(ObjDirPath);

     

                foreach (FileSystemInfo FSI in SourceDir.GetFileSystemInfos())

                {

                    if (FSI is DirectoryInfo)

                    {

                        //如果是文件夹则递归

                        GetFiles(FSI.FullName);

                    }

                    else

                    {

                        //如果是符合要求的文件则垒加集合,因为我只要求显示图片文件,在checkFileType方法里定义要显示文件的扩展名

                        if (checkFileType(FSI.Extension))

                        {

                            //由于是物理路径,如e:/luobing_web/uploadfiles/picture/test.jpg这种形式,需要提取虚拟路径,如:../uploadfiles/picture/test.jpg

                            string FilePath = ""; //一步写来看起混乱,就分开写了

                            FilePath = FSI.FullName.ToLower();

                            FilePath = FilePath.Substring(FilePath.LastIndexOf("uploadfiles//"));

                            FilePath = "../"+FilePath.Replace("//", "/");//这里在路径前加了../,因为我的项目里页面文件和上传文件夹不是同级文件夹

                            File_List += FilePath + ",";

                        }

                    }

                }

            }

            ///<summary>

            ///构造DataTABLE来绑定GRIDVIEW

            ///</summary>

            ///<returns></returns>

            public DataTable FileDataTable()

            {

                GetFiles(Server.MapPath(@"~/UploadFiles/"));

                //构造DataTABLE

                DataTable dt = new DataTable();

                dt.Columns.Add(new DataColumn("FilePath", typeof(string)));

                dt.Columns.Add(new DataColumn("FileName", typeof(string)));

                dt.Columns.Add(new DataColumn("FileLength", typeof(string)));

                dt.Columns.Add(new DataColumn("FileLastWriteTime", typeof(string)));

                DataRow dr;

                //将文件数组集合切割到数组

                string[] dtaArry = File_List.Split(',');

                for (int i = 0; i < dtaArry.Length; i++)

                {

                    if (dtaArry[i].Trim() != "")//防空元素

                    {

                        dr = dt.NewRow();

                        dr[0] = dtaArry[i];//文件路径

                        dr[1] = Path.GetFileName(dtaArry[i]);//文件名

                        //获取文件大小

                        FileInfo FI = new FileInfo(Server.MapPath(@dtaArry[i]));

                        dr[2] = Convert.ToString(FI.Length / 1000)+"KB";//获取的是字节byte,还需要转换为千字节KB

                        dr[3] = FI.LastWriteTime;

                        dt.Rows.Add(dr);

                    }

                }

                return dt;

            }

     

            ///<summary>

            ///绑定gridview

            ///</summary>

            private void BindGrid()

            {

                //获取数据源

                DataTable dtb = FileDataTable();

                //排序

                string SortDirection = gridFileList.Attributes["SortDirection"].ToString();

                string SortExpression = gridFileList.Attributes["SortExpression"].ToString();

                dtb.DefaultView.Sort = string.Format("{0} {1}", SortExpression, SortDirection);

                //赋数据源并绑定

                gridFileList.DataSource = dtb;

                gridFileList.DataBind();

            }

            ///<summary>

            ///添加

            ///</summary>

            ///<param name="sender"></param>

            ///<param name="e"></param>

            protected void btnAdd_Click(object sender, EventArgs e)

            {

                Response.Redirect("MyFiles_Add.aspx");

            }

            ///<summary>

            ///删除

            ///</summary>

            ///<param name="sender"></param>

            ///<param name="e"></param>

            protected void btnDel_Click(object sender, EventArgs e)

            {

                try

                {

                    FileInfo fileinfo;

                    bool IsSelect = false;

                    for (int i = 0; i < gridFileList.Rows.Count; i++)

                    {

                        GridViewRow row = gridFileList.Rows[i];

                        if (((CheckBox)row.FindControl("chkDel")).Checked)

                        {

                            IsSelect = true;

                            Image Img = (Image)gridFileList.Rows[i].Cells[0].FindControl("ImgPath");

                            fileinfo = new FileInfo(Request.MapPath(@Img.ImageUrl));

                            if (fileinfo.Exists)

                            {

                                fileinfo.Delete();

                            }

                        }

                    }

                    if (IsSelect)

                    {

                        ValueChecked.MessageBox(Page, "删除成功!");

                    }

                    else

                    {

                        ValueChecked.MessageBox(Page, "请选择要删除的行!");

                    }

                }

                catch

                {

                    ValueChecked.MessageBox(Page, "删除失败!");

                }

     

                BindGrid();

            }

            ///<summary>

            ///绑定数据行

            ///</summary>

            ///<param name="sender"></param>

            ///<param name="e"></param>

            protected void gridFileList_RowDataBound(object sender, GridViewRowEventArgs e)

            {

                if (e.Row.RowType == DataControlRowType.DataRow)

                {

                    Image Img = (Image)e.Row.Cells[0].FindControl("ImgPath");

                    Img.ImageUrl = e.Row.Cells[5].Text;

                    e.Row.Cells[5].Text="";

                }

            }

            ///<summary>

            ///分页

            ///</summary>

            ///<param name="sender"></param>

            ///<param name="e"></param>

            protected void gridFileList_PageIndexChanging(object sender, GridViewPageEventArgs e)

            {

                gridFileList.PageIndex = e.NewPageIndex;

                this.BindGrid();

            }

     

            ///<summary>

            ///排序

            ///</summary>

            ///<param name="sender"></param>

            ///<param name="e"></param>

            protected void gridFileList_Sorting(object sender, GridViewSortEventArgs e)

            {

                string sortExpression = e.SortExpression.ToString();

                string sortdirection = "ASC";

                if (sortExpression == gridFileList.Attributes["SortExpression"])

                {

                    sortdirection = (gridFileList.Attributes["SortDirection"].ToString() == sortdirection ? "DESC" : "ASC");

                }

                gridFileList.Attributes["SortExpression"] = sortExpression;

                gridFileList.Attributes["SortDirection"] = sortdirection;

                this.BindGrid();

            }

        }

    }

  • 相关阅读:
    METHODS OF AND APPARATUS FOR USING TEXTURES IN GRAPHICS PROCESSING SYSTEMS
    Display controller
    Graphics processing architecture employing a unified shader
    Graphics-Processing Architecture Based on Approximate Rendering
    Architectures for concurrent graphics processing operations
    Procedural graphics architectures and techniques
    DYNAMIC CONTEXT SWITCHING BETWEEN ARCHITECTURALLY DISTINCT GRAPHICS PROCESSORS
    Thermal zone monitoring in an electronic device
    System and method for dynamically adjusting to CPU performance changes
    Framework for Graphics Animation and Compositing Operations
  • 原文地址:https://www.cnblogs.com/beidao/p/2758994.html
Copyright © 2011-2022 走看看