Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中搜索不带扩展名的文件_C#_Asp.net_Onclick - Fatal编程技术网

C# 在asp.net中搜索不带扩展名的文件

C# 在asp.net中搜索不带扩展名的文件,c#,asp.net,onclick,C#,Asp.net,Onclick,如何在不键入文件扩展名的情况下搜索特定文件名?例如,filenamepenguin family.png并在文本框中键入penguin only,然后列表框将填充包含penguin类似内容的文件 .aspx <asp:TextBox ID="TextBox1" runat="server"> </asp:TextBox><asp:Button ID="Button1"runat="server" Text="Search" OnClick="Button1_Cli

如何在不键入文件扩展名的情况下搜索特定文件名?例如,filename
penguin family.png
并在文本框中键入
penguin only
,然后列表框将填充包含
penguin
类似内容的文件

.aspx

<asp:TextBox ID="TextBox1" runat="server">

</asp:TextBox><asp:Button ID="Button1"runat="server" Text="Search" OnClick="Button1_Click" />
<asp:ListBox ID="ListBox1" runat="server" Width="200px" Height="300px"></asp:ListBox>
你可以这样做

protected void Button1_Click(object sender, EventArgs e)
{
     string[] files = Directory.GetFiles(Server.MapPath("~/files"))
                   .Where(file => file.ToLower().Contains(TextBox1.Text.ToLower().Trim()))
                   .ToArray();

     foreach (string item in files)
     {
        ListBox1.Items.Add(fileName);
     }

}
好的,您可以通过使用
字典
并直接绑定到listbox来对其进行更多优化。像这样-

var files = Directory.GetFiles(Server.MapPath("~/files"))
           .Where(file => file.ToLower().Contains(TextBox1.Text.ToLower().Trim()))
           .ToList();

Dictionary<string, string> fileList = files
           .Zip(files, (listText, listValue) => new { listText, listValue})
           .ToDictionary(x => x.listValue, x => x.listText);
ListBox1.DataSource = fileList;
ListBox1.DataTextField = "listValue";
ListBox1.DataValueField = "listText";
ListBox1.DataBind();

如果它在一个子文件夹中呢?
protected void Button1_Click(object sender, EventArgs e)
{
     string[] files = Directory.GetFiles(Server.MapPath("~/files"))
                   .Where(file => file.ToLower().Contains(TextBox1.Text.ToLower().Trim()))
                   .ToArray();

     foreach (string item in files)
     {
        ListBox1.Items.Add(fileName);
     }

}
var files = Directory.GetFiles(Server.MapPath("~/files"))
           .Where(file => file.ToLower().Contains(TextBox1.Text.ToLower().Trim()))
           .ToList();

Dictionary<string, string> fileList = files
           .Zip(files, (listText, listValue) => new { listText, listValue})
           .ToDictionary(x => x.listValue, x => x.listText);
ListBox1.DataSource = fileList;
ListBox1.DataTextField = "listValue";
ListBox1.DataValueField = "listText";
ListBox1.DataBind();
var files = Directory
    .EnumerateFiles(Server.MapPath("~/files"))
    .Where(file => file.ToLower().Contains(TextBox1.Text.ToLower().Trim()))
    .ToArray();