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

时间:2014-09-23 20:35:23

标签: c# asp.net gridview file-io

我正在为我的一位朋友写一个文件管理网页。我使用DropDownlist元素选择文件夹。当索引改变时,它会填充gridview。

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

例如,如果我通过删除按钮删除file.pdf,则会将其重命名为file.pdf_zkanoca_deleted_1411472294

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

public void listFiles(string selectedFolder)
{
    var dir = new DirectoryInfo(selectedFolder);

    gridView1.DataSource = dir.GetFiles();
    gridView1.DataBind();
}

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

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

1 个答案:

答案 0 :(得分:3)

使用IEnumerable.Where扩展名

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

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