public void StartRecording(string filename) { if (!recordings.ContainsKey(filename)) { if (recordings.Count == 0) { SubscribeEvents(); } StreamWriter writer = null; if (filename.EndsWith(".gz", StringComparison.InvariantCultureIgnoreCase)) { FileStream filewriter = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write); writer = new StreamWriter(new GZipStream(filewriter, CompressionMode.Compress)); } else { writer = new StreamWriter(filename); } String pathPrefix = ""; if (filename.LastIndexOf("/") != -1 || filename.LastIndexOf("\\") != -1) { int lastIndex = filename.LastIndexOf("/"); if (lastIndex == -1) { lastIndex = filename.LastIndexOf("\\"); } pathPrefix = filename.Substring(0, lastIndex + 1); } MainGraphExportContext mainGraphContext = GRSExport.ExportYouMustCloseStreamWriter(graph, writer, pathPrefix, false, null); recordings.Add(new KeyValuePair <string, RecordingState>(filename, new RecordingState(writer, mainGraphContext))); } }