4

我有一个这样的目录"C:/Documents and Settings/Admin/Desktop/test/",其中包含很多 microsoft word office 文件。我的应用程序中有一个文本框和一个按钮。文件名是这样的Date_Name_Number_Code.docx。用户应输入此选项之一,我的目的是在整个文件名中搜索用户条目并找到并打开文件。谢谢你

4

4 回答 4

8
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);
        }
    }
于 2012-08-22T06:37:27.167 回答
5

天,

这是我使用的方法。您需要在表单上添加一个文本框 (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 的文件

我希望这有帮助。

干杯!

于 2012-08-22T07:02:40.987 回答
3

您可以使用Directory.GetFiles($path$).Where(file=>file.Name.Contains($user search string$).

应该为你工作。

于 2012-08-22T06:35:52.260 回答
2

您可以使用Directory.GetFiles(string, string)在目录中搜索模式。因此,对于您的情况,这将类似于:

 string[] files =
          Directory.GetFiles("C:/Documents and Settings/Admin/Desktop/test/",
                              "Date_Name_Number_Code.docx");

然后通过files数组查找您要查找的内容。

于 2012-08-22T07:12:18.137 回答