2012-05-09 57 views
0

因此,如果这是一个“新手”问题,但我刚刚开始自学C#,并开始搞乱WMI,并使用微软WMI生成器,我是这样做的,目的是为了分析它是如何工作的。但是,有没有办法让它将数据写入文本文件?如何将C#应用程序的文本输出写入文本文件

代码:

using System; 

    using System.Management; 

    using System.Windows.Forms; 

    namespace WMISample 
    { 
     public class MyWMIQuery 
     { 

      public static void Main() 
      { 
       try 
       { 
        ManagementObjectSearcher searcher = 
        new ManagementObjectSearcher("root\\CIMV2", 
        "SELECT * FROM Win32_BIOS"); 

       foreach (ManagementObject queryObj in searcher.Get()) 
       { 
        Console.WriteLine("-----------------------------------"); 
        Console.WriteLine("Win32_BIOS instance"); 
        Console.WriteLine("-----------------------------------"); 
        Console.WriteLine("SerialNumber: {0}", queryObj["SerialNumber"]); 
       } 
      } 
      catch (ManagementException e) 
      { 
       MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); 
      } 
     } 
    } 
} 
+0

难道你不能通过命令行重定向它吗? 'program.exe> test.txt'? –

回答

3

如果你只是想文本追加到一个文件:

File.AppendAllText("c:\file.txt", "some text"); 

如果你特别想管康寿Ë到一个文本文件,你需要将控制台重定向到一个FileStream的标准输出,如下所述:

来自:http://msdn.microsoft.com/en-us/library/system.console.setout(v=vs.71).aspx

Console.WriteLine("Hello World"); 
FileStream fs1 = new FileStream("Test.txt", FileMode.Create); 
// First, save the standard output. 
TextWriter tmp = Console.Out; 

StreamWriter sw1 = new StreamWriter(fs1); 
Console.SetOut(sw1); 
Console.WriteLine("Hello file"); 

Console.SetOut(tmp); 
Console.WriteLine("Hello World"); 

sw1.Close(); 
0

如果这是记录的目的,你可以使用跟踪和TextWriterTraceListener写出一个文件,它几乎正是它的目的。

相关问题