dr[0] = i;//序号 dr[1] = DirName;//文件夹名称 dr[3] = "删除"; dr[3] = "查看详情"; dtDir.Rows.Add(dr); i++; } DataView dvDir = new DataView(dtDir); //返回得到的数据视图 return dvDir; } 生成文件数据网格(FileGrid)数据源的方法: //通过此方法返回一个集合形式的数据视图DataView,用来初始化文件的DataGrid ICollection CreateDataSourceFile() { dtFile = new DataTable(); DataRow dr; dtFile.Columns.Add(new DataColumn("FileID", typeof(Int32))); dtFile.Columns.Add(new DataColumn("FileName", typeof(string))); dtFile.Columns.Add(new DataColumn("DelFile", typeof(string))); dtFile.Columns.Add(new DataColumn("FileDetail", typeof(string))); //根据传入的参数(目录名)得到此目录下所有文件名的字符串数组 string [] FileEntries = Directory.GetFiles(strDir2List); foreach(string FileName in FileEntries){ dr = dtFile.NewRow(); dr[0] = i; dr[1] = FileName; dr[2] = "删除"; dr[3] = "查看详情"; dtFile.Rows.Add(dr); i++; } dvFile = new DataView(dtFile); return dvFile; }
我们编程实现了两个DataSource只需在页面的Page_Load方法里对两个DataGrid进行数据绑定即可将得到的DataTable中的数据显示在aspx页面的DataGrid上。
数据绑定代码:
//对子目录数据列表DirGrid进行数据源定义和数据绑定 DirGrid.DataSource = CreateDataSourceDir(); DirGrid.DataBind(); //对文件数据列表FileGrid进行数据源定义和数据绑定 FileGrid.DataSource = CreateDataSourceFile(); FileGrid.DataBind();
通过我们上边介绍的主要方法,我们实现了对某个逻辑驱动器或目录中的所有子目录和文件进行了列表显示,并且可以根据显示结果更进一步的浏览子目录或者查看文件的属性和内容提要。浏览子目录仍然是通过listdir.aspx这个程序,没有任何子目录级别要求,没有目录深度限制。 删除子目录和文件的主要方法和代码:
在删除子目录时,我们需要用到Directory.Delete (string,bool)方法,此方法有两种:
1.public static void Delete(string);
从指定路径删除空目录。
2.public static void Delete(string, boolean);
删除指定的目录并(如果指示)删除该目录中的任何子目录,将boolean设置为true的话,则删除此目录下的所有子目录和文件,否则将boolean设置为false。
在这里我们使用了第二种方法,如果选择删除的话,将删除此目录下的所有子目录和文件。
注意:Directory 类的所有方法都是静态的,因而无需具有目录Directory的实例就可被调用。
/*实现删除子目录的方法,此方法为VS.NET自动添加,注意DataGridCommandEventArgs e为DirGrid中 CommandName="Delete" 的ButtonColumn的事件,通过此事件,我们可以得到是那一行的ButtonColumn按钮列被点击,进而确定我们需要删除的子目录的名称*/ private void DirGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){ /*定义一个单元格,e.Item为此事件所发生行的所有项目,e.Item.Cells[1]为整个行的第二个单元格的内容,在此DataGrid中为子目录的名称 */ TableCell ItemCell = e.Item.Cells[1]; //得到此子目录的名称的字符串 string item = ItemCell.Text; //删除此子目录 Directory.Delete(item,true); //删除后进行数据绑定以更新数据列表 DirGrid.DataBind(); }
在删除文件时,我们需要用到File.Delete(string path);
注意:File 类的所有方法都是静态的,因而无需具有目录的实例就可被调用。
private void FileGrid_DeleteCommand(object source,
上一篇:2004.06.08 0day 中文简介
下一篇:IE为什么突然关闭?Cookie在捣乱
|