查找名称中包含特定子字符串的文件

时间:2012-08-22 06:31:47

标签: c#

我有一个类似于此"C:/Documents and Settings/Admin/Desktop/test/"的目录,其中包含许多Microsoft Office文字办公文件。我的应用程序中有一个textBox和一个按钮。该文件的名称与此Date_Name_Number_Code.docx类似。用户应输入其中一个选项,我的目的是在整个文件名中搜索用户条目并查找并打开该文件。 谢谢

4 个答案:

答案 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);
    }

此代码将关闭并搜索根目录(您可以根据需要进行设置)以及此目录下的所有目录,以查找与文本框中提供的搜索模式匹配的任何文件。您可以将此模式更改为您喜欢的任何内容:

  • *。docx将查找扩展名为.docx
  • 的所有文件
  • * foogle *会找到包含foogle的所有文件

我希望这会有所帮助。

干杯!

答案 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数组以查找您要查找的内容。