我有一个类似于此"C:/Documents and Settings/Admin/Desktop/test/"
的目录,其中包含许多Microsoft Office文字办公文件。我的应用程序中有一个textBox和一个按钮。该文件的名称与此Date_Name_Number_Code.docx
类似。用户应输入其中一个选项,我的目的是在整个文件名中搜索用户条目并查找并打开该文件。
谢谢
答案 0 :(得分:7)
string name = textBox2.Text;
string[] allFiles = System.IO.Directory.GetFiles("C:\\");//Change path to yours
foreach (string file in allFiles)
{
if (file.Contains(name))
{
MessageBox.Show("Match Found : " + file);
}
}
答案 1 :(得分:5)
G'天,
这是我使用的方法。您需要在表单上添加文本框(txtSearch)和按钮(cmdGo),然后连接相应的事件。然后你可以添加这段代码:
private void cmdGo_Click(object Sender, EventArgs E)
{
// txtSearch.Text = "*.docx";
string[] sFiles = SearchForFiles(@"C:\Documents and Settings\Admin\Desktop\test", txtSearch.Text);
foreach (string sFile in sFiles)
{
Process.Start(sFile);
}
}
private static string[] SearchForFiles(string DirectoryPath, string Pattern)
{
return Directory.GetFiles(DirectoryPath, Pattern, SearchOption.AllDirectories);
}
此代码将关闭并搜索根目录(您可以根据需要进行设置)以及此目录下的所有目录,以查找与文本框中提供的搜索模式匹配的任何文件。您可以将此模式更改为您喜欢的任何内容:
我希望这会有所帮助。
干杯!
答案 2 :(得分:3)
您可以使用Directory.GetFiles($path$).Where(file=>file.Name.Contains($user search string$)
。
应该为你工作。
答案 3 :(得分:2)
您可以使用Directory.GetFiles(string, string)搜索目录中的模式。 因此,对于您的情况,这将是:
string[] files =
Directory.GetFiles("C:/Documents and Settings/Admin/Desktop/test/",
"Date_Name_Number_Code.docx");
然后查看files
数组以查找您要查找的内容。