4

このようなディレクトリに、"C:/Documents and Settings/Admin/Desktop/test/"Microsoft Word Office ファイルが多数含まれています。アプリケーションとボタンに textBox があります。ファイル名はこんな感じ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 に答える