I am getting memory exception “System.IO.out of exception” error

前端 未结 2 1119
半阙折子戏
半阙折子戏 2021-01-29 06:58

For small directory size code is working fine ,it gives this error message when size of directory files are big.

My code :

IEnumerable text         


        
2条回答
  •  既然无缘
    2021-01-29 07:46

    I would use Directory.EnumerateFiles and File.ReadLines since they are less memory hungry, they are working like a StreamReader whereas Directory.GetFiles and File.ReadAllLines reads all into memory first:

    var matchingLines = Directory.EnumerateFiles(@"C:\Users\karansha\Desktop\watson_query\", "*.*")
        .SelectMany(fn => File.ReadLines(fn))
        .Where(l => l.IndexOf("appGUID: null", StringComparison.InvariantCultureIgnoreCase) >= 0);
    foreach (var line in matchingLines)
    {
        Regex regex = new Regex(@"User:\s*(?[^\s]+)");
        // etc pp ...
    }
    

    You also don't need to create the List for all the lines again. Just enumerate the query with foreach(textLines.ToList creates a third collection which is also redundant).

提交回复
热议问题