8
8
using System . Drawing ; // for notifyicon
9
9
using System . IO ;
10
10
using System . Runtime . InteropServices ;
11
+ using System . Text ;
11
12
using System . Threading ;
12
13
using System . Threading . Tasks ;
13
14
using System . Windows ;
@@ -1505,16 +1506,25 @@ private void BtnRefreshBuildReport_Click(object sender, RoutedEventArgs e)
1505
1506
var logFile = Path . Combine ( Tools . GetEditorLogsFolder ( ) , "Editor.log" ) ;
1506
1507
//Console.WriteLine("read editor log: " + logFile);
1507
1508
1508
- // TODO use streamreader to scan.. some log files are huge
1509
-
1510
- string [ ] rows ;
1509
+ List < string > rows = new List < string > ( ) ;
1511
1510
1512
1511
try
1513
1512
{
1514
- rows = File . ReadAllLines ( logFile ) ;
1513
+ using ( var fs = new FileStream ( logFile , FileMode . Open , FileAccess . Read , FileShare . ReadWrite ) )
1514
+ using ( var sr = new StreamReader ( fs , Encoding . Default ) )
1515
+ {
1516
+ while ( sr . EndOfStream == false )
1517
+ {
1518
+ // TODO only start collecting when find build report start, and need to reset list if another build report later
1519
+ var r = sr . ReadLine ( ) ;
1520
+ rows . Add ( r ) ;
1521
+ }
1522
+ }
1523
+
1515
1524
}
1516
- catch ( Exception )
1525
+ catch ( Exception ex )
1517
1526
{
1527
+ Console . WriteLine ( ex . Message ) ;
1518
1528
throw ;
1519
1529
}
1520
1530
@@ -1529,7 +1539,7 @@ private void BtnRefreshBuildReport_Click(object sender, RoutedEventArgs e)
1529
1539
int startRow = - 1 ;
1530
1540
int endRow = - 1 ;
1531
1541
// loop backwards to find latest report
1532
- for ( int i = rows . Length - 1 ; i >= 0 ; i -- )
1542
+ for ( int i = rows . Count - 1 ; i >= 0 ; i -- )
1533
1543
{
1534
1544
// find start of build report
1535
1545
//if (rows[i].IndexOf("Build Report") == 0) // TODO take overview also
@@ -1538,7 +1548,7 @@ private void BtnRefreshBuildReport_Click(object sender, RoutedEventArgs e)
1538
1548
startRow = i + 1 ;
1539
1549
1540
1550
// find end of report
1541
- for ( int k = i ; k < rows . Length ; k ++ )
1551
+ for ( int k = i ; k < rows . Count ; k ++ )
1542
1552
{
1543
1553
if ( rows [ k ] . IndexOf ( "-------------------------------------------------------------------------------" ) == 0 )
1544
1554
{
0 commit comments