0

Windows フォームで c# を使用し"C:\XML\Outbound"て、注文番号を含むファイルのディレクトリを検索し、注文番号を含む3860457ファイルへのパスを返す必要があります。これにより、ファイルを開いて内容を RickTextBox でユーザーに表示できます。

エンド ユーザーには注文番号がありますが、その注文番号が含まれるファイルがわからないため、注文番号を含むファイルが見つかるまですべてのファイルを検索してパスを返す必要があります (例: "C:\XML\Outbound\some_file_name_123.txt")

私はC#に少し慣れていないので、どこから始めればよいかさえわかりません。これに対する方向性はありますか?

申し訳ありませんが、注文番号はファイル内にあるため、各ファイルの内容を注文番号で検索し、注文番号を含むファイルが見つかったら、そのファイルへのパスを返す必要があります。注文番号はファイル名の一部ではありません。

4

1 に答える 1

4

率直な答え:

public string GetFileName(string search){ 
    List<string> paths = Directory.GetFiles(@"C:\XML\Outbond","*.txt",SearchOption.AllDirectories).ToList();
    string path = paths.FirstOrDefault(p=>File.ReadAllLines(p).Any(line=>line.IndexOf(search)>=0));
    return path;    
}

それほどストレートな答えではありません:

上記の関数は指定された文字列のパスを提供しますが (エラーやエッジ ケースの処理が適切な場合もあります)、ファイルが多数ある場合は特に、処理が非常に遅くなります。その場合は、間違っている可能性があるため、環境について詳しく教えていただく必要があります (:

于 2013-04-05T20:31:15.070 に答える