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();

}

}

}

asp.net(C#)读取文件夹和子文件夹下所有文件,绑定到GRIDVIEW并排序 .的更多相关文章

  1. Linux C 读取文件夹下所有文件(包括子文件夹)的文件名【转】

    转自:https://www.cnblogs.com/xudong-bupt/p/3504442.html 本文:http://www.cnblogs.com/xudong-bupt/p/350444 ...

  2. (转) Ubuntu 更改文件夹及子文件夹权限

    Linux系统下如何修改文档及文件夹(含子文件夹)权限,我们来看一下. 一 介绍: 可以使用命令chmod来为文件或目录赋予权限.Linux/Unix 的档案存取权限分为三级 : 档案拥有者.群组.其 ...

  3. 遍历文件夹及其子文件夹下的.pdf文件,并解压文件夹下所有的压缩包

    List<PDFPATH> pdfpath = new List<PDFPATH>(); List<string> ziplist = new List<st ...

  4. shell 批量压缩指定文件夹及子文件夹内图片

    shell 批量压缩指定文件夹及子文件夹内图片 用户上传的图片,一般都没有经过压缩,造成空间浪费.因此须要编写一个程序,查找文件夹及子文件夹的图片文件(jpg,gif,png),将大于某值的图片进行压 ...

  5. Delphi遍历文件夹及子文件夹(可查找固定格式文件)

    Delphi遍历文件夹及子文件夹 {-------------------------------------------------------------------------------过程名 ...

  6. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  7. Windows批量修改文件夹及子文件夹下文件的扩展名

    实例:将 D:/backup 目录下所有后缀名为 “.zip” 的文件替换为 “.exe” 后缀 bat批处理: @echo off rem 不显示执行过程 D: rem 切换至指定盘符 cd D:/ ...

  8. Java 遍历指定文件夹及子文件夹下的文件

    Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...

  9. c++读取文件夹及子文件夹数据

    这里有两种情况:读取文件夹下所有嵌套的子文件夹里的所有文件  和 读取文件夹下的指定子文件夹(或所有子文件夹里指定的文件名) <ps,里面和file文件有关的结构体类型和方法在 <io.h ...

  10. BAT 遍历文件夹和子文件夹下所有文件

    echo off & color 0A ::指定起始文件夹 set DIR="%cd%" echo DIR=%DIR% :: 参数 /R 表示需要遍历子文件夹,去掉表示不遍 ...

随机推荐

  1. [Objective-c开源库]HHRouter

    ---恢复内容开始--- 目的 统一客户端内部和外部跳转处理,支持传参数 代码 添加vc,block映射 针对路径做映射,如/user/:userId -> UserViewController ...

  2. 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  3. Ubuntu安装SSH服务器故障分析及解决办法(错误1:E:软件包 openssh-server 还没有可供安装的候选者,错误2:E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系)

    •    微博: 小样儿老师2015 Windows下做Linux开发需要SSH强大功能的支持.安装SSH的过程会出现了很多问题,看完这篇文章可以让你少走些弯路,PS:折腾一下午的成果. Ubuntu ...

  4. iOS9,导航控制器中的子控制器设置StatusBar状态失效的问题

    iOS9之前控制StatusBar的两种方式: 第一种方式:全局控制StatusBar 1. 在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppe ...

  5. jquery 中jsonp的实现原理

    在同源策略下,在某个服务器下的页面是无法获取到该服务器以外的数据的,即一般的 ajax是不能进行跨域请求的.但 img.iframe .script等标签是个例外,这些标签可以通过 src属性请求到其 ...

  6. Sicily 1031: Campus (最短路)

    这是一道典型的最短路问题,直接用Dijkstra算法便可求解,主要是需要考虑输入的点是不是在已给出的地图中,具体看代码 #include<bits/stdc++.h> #define MA ...

  7. python , angular js 学习记录【3】

    1.Alembic是SQLAlchemy作者编写的Python数据库迁移工具.用它实现模型类和数据库的同步更新.(安装以及操作步骤 使用Alembic迁移数据库) 使用Alembic添加数据库字段操作 ...

  8. ffmpeg+x264 Windows MSVC 静态编译

    尝试ubuntu和win下mingw编译版本,但都在Vistual Studio链接时因为依赖 libgcc.a, libmingw.a, libmingwex.a 会与mscrt 有符号冲突. 最后 ...

  9. XUT 1245

    这是一道2016湘潭邀请赛的题目,记得那个时候看到这个题目就想到了最短生成树,然后给别人做,WA了,最后发现是有向图,然后我自己去写了个搜索,结果是RE吧 今天刚刚好想到这个题目,然后再来做,发现这个 ...

  10. Unity3D 解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题

    解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题 <meta-data android:name="unityplayer.SkipPermissi ...