4

このコードは、1.txt から行を取得し、それを列に分割します。今、something.txtで終わる200以上のファイルのディレクトリがあり、一度に1つずつ開き、以下のこのプロセスを実行したい. コードをあまり変更せずにすべてのファイルをループする最も簡単な方法は何ですか?

現在のコードのスニペット ;

    string _nextLine;
    string[] _columns;
    char[] delimiters;


    delimiters = "|".ToCharArray();


    _nextLine = _reader.ReadLine();

    string[] lines = File.ReadAllLines("C:\\P\\DataSource2_W\\TextFiles\\Batch1\\1.txt");


    //Start at index 2 - and keep looping until index Length - 2 
    for (int i = 3; i < lines.Length - 2; i++) 
    {     _columns = lines[i].Split('|');    

        // Check if number of cols is 3
    if (_columns.Length == 146)
    {

        JazzORBuffer.AddRow();
        JazzORBuffer.Server = _columns[0];
        JazzORBuffer.Country = _columns[1];
        JazzORBuffer.QuoteNumber = _columns[2];
        JazzORBuffer.DocumentName =_columns[3];
        JazzORBuffer.CompanyNameSoldTo=_columns[4];


    }   

         else
{
    // Debug or messagebox the line that fails
    MessageBox.Show("Cols:" + _columns.Length.ToString() + " Line: " + lines[i]);
    return;

}


    } 
4

1 に答える 1

20

Directory.EnumerateFiles()を使用するだけで、指定したディレクトリのファイルコレクションを反復処理できます。

したがって、次のようにforeachループ内にコードを挿入できます。

foreach (var file in 
  Directory.EnumerateFiles(@"C:\\P\\DataSource2_W\\TextFiles\\Batch1", "*.txt"))
{

  //your code
}
于 2012-05-16T09:56:46.017 に答える