public void Add(string aFileName, Binary2 aData) { lock ( iEntries ) { if (!iEntries.ContainsKey(aFileName)) { iEntries.Add(aFileName, aData); } } }
public void Read() { //System.Console.WriteLine( string.Format( "Reading starting - pos: 0x{0}, len: {1:d8}", iStart, iCount ) ); DateTime timeStamp = DateTime.Now; Binary2 currentBinary = null; long binaryCount = 0; long lineCount = 0; using (StreamReader reader = new StreamReader(new MemoryStream(iData, iStart, iCount))) { string line = reader.ReadLine(); while (line != null) { ++lineCount; if (line.StartsWith("From ")) { currentBinary = new Binary2(); currentBinary.iFileName = line.Substring(8); // ++binaryCount; iStore.Add(currentBinary.iFileName, currentBinary); } else if (currentBinary != null) { currentBinary.iData.Add(line); } line = reader.ReadLine(); } } DateTime endTime = DateTime.Now; TimeSpan span = (endTime - timeStamp); //System.Console.WriteLine( string.Format( "Reading complete - {0} time, {1} lines, {2} binaries", span, lineCount, binaryCount ) ); if (Completed != null) { Completed(this); } }