如何将C#应用程序的文本输出写入文本文件

时间:2012-05-09 13:59:33

标签: c# text wmi

原谅我,如果这是一个“新手”问题,但我刚开始自学C#,我开始搞乱WMI,并且使用微软WMI生成器,我做了这个,为了有一些东西分析它的工作原理。但是,有没有办法让它将数据写入文本文件?

代码:

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);
            }
        }
    }
}

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

有一个特定的using语句用于写入和从文件写入,其system.IO(用于输入输出)这里是一个教程的链接,正确解释了所有基本IO的用法 http://www.csharp-station.com/HowTo/ReadWriteTextFile.aspx

答案 2 :(得分:0)

如果这是用于记录目的,您可以使用Trace和TextWriterTraceListener写出文件,它几乎就是它的目的。