C# 在asp.net中搜索不带扩展名的文件
如何在不键入文件扩展名的情况下搜索特定文件名?例如,filenameC# 在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
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();