ASP.NET中gridView上的条件文件列表

本文关键字:条件 文件 列表 NET gridView ASP | 更新日期: 2023-09-27 18:24:11

我正在为我的一个朋友编写一个文件管理网页。我使用DropDownlist元素选择文件夹。当索引发生变化时,它会填充网格视图。

为了防止用户失误,我决定在点击删除按钮时不删除该文件。我更改了已删除文件的名称并添加了后缀。

例如,如果我通过delete按钮删除file.pdf,它将被重命名为file.pdf_zkanoca_deleted_1411472294

填充网格视图内容后,仍会列出重命名的文件。我的listFiles()方法如下:

public void listFiles(string selectedFolder)
{
    var dir = new DirectoryInfo(selectedFolder);
    gridView1.DataSource = dir.GetFiles();
    gridView1.DataBind();
}

我想要的是在将数据源绑定到gridview之前检查文件名是否包含"_zkanoca_deleted_"字符串。如果它包含该字符串,它将不会被列出。

我认为foreach循环将解决我的问题。但我无法想象如何构建它。

ASP.NET中gridView上的条件文件列表

使用IEnumerable.Where扩展

gridView1.DataSource = dir.GetFiles().Where(x => !x.Name.Contains("_zkanoca_deleted_")).ToList();

正如文档中所解释的,Where扩展使用谓词过滤序列
在这种情况下,您可以使用FileInfo属性Name来检查它是否包含禁止的子字符串,并从绑定到网格视图的序列中排除该FileInfo。