Comment lire des fichiers ETL dans .Net ? Je veux voir mon fichier ETL dans une vue de liste mais je ne peux pas analyser le contenu du fichier car il n'est pas ascii.
Réponses
Trop de publicités?Je n'ai pas fait attention, j'ai trouvé la solution en effectuant diverses recherches sur Google :
//Init
System.Diagnostics.Process worker = new System.Diagnostics.Process();
//Start logging
worker.StartInfo.FileName="logman";
worker.StartInfo.Arguments="start MyTcpipLog -p Microsoft-Windows-TCPIP -ets";
worker.Start();
worker.WaitForExit();
//Do nothing for 30 seconds
DateTime start = DateTime.Now;
while(DateTime.Now.Subtract(start).Seconds<5){}
//Stop logging
worker.StartInfo.FileName="logman";
worker.StartInfo.Arguments="stop MyTcpipLog -ets";
worker.Start();
worker.WaitForExit();
//Convert .etl to .csv
worker.StartInfo.FileName="tracerpt";
worker.StartInfo.Arguments = "\""+System.IO.Path.GetDirectoryName(Application.ExecutablePath)+"\\MyTcpipLog.etl\" -o \""+System.IO.Path.GetDirectoryName(Application.ExecutablePath)+"\\MyTcpipLog.csv\"";
worker.Start();
worker.WaitForExit();
//Load CSV into memory
// create reader & open file
System.IO.TextReader tr = new System.IO.StreamReader("MyTcpipLog.csv");
string data = tr.ReadToEnd();
tr.Close();
//Delete CSV
System.IO.File.Delete("MyTcpipLog.etl");
System.IO.File.Delete("MyTcpipLog.csv");