C# WMI查询响应正在写入文件

C# WMI查询响应正在写入文件,c#,wmi,streamwriter,C#,Wmi,Streamwriter,我无法将WMI查询的响应写入文件,但可以将其打印到控制台 我重写了查询以使用不同的WMI方法来提取数据。我改回了下面的易于使用的方法 我从mo[“PackageName”]更改为mo[“PackageName”]。如果响应不是可写字符串,则更改为字符串() 我在谷歌上搜索过——我还没有发现类似的问题,我开始认为我的代码中有一些明显的东西我只是忽略了 //store log in same directory as exe is ran from StreamWriter writeFile =

我无法将WMI查询的响应写入文件,但可以将其打印到控制台

我重写了查询以使用不同的WMI方法来提取数据。我改回了下面的易于使用的方法

我从
mo[“PackageName”]
更改为
mo[“PackageName”]。如果响应不是可写字符串,则更改为字符串()

我在谷歌上搜索过——我还没有发现类似的问题,我开始认为我的代码中有一些明显的东西我只是忽略了

//store log in same directory as exe is ran from
StreamWriter writeFile = new StreamWriter(filepath);    
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT PackageName FROM Win32_Product WHERE PackageName LIKE 'jre%%'");
foreach (ManagementObject mo in mos.Get())
{
   if (mo["PackageName"].ToString().Contains("jre"))
   {
      String packageName = mo["PackageName"].ToString();
      writeFile.WriteLine(host + "," + packageName);
   }
}
更新 我的答案如下:

foreach (ManagementObject mo in mos.Get())
        {
            if (mo["PackageName"].ToString().Contains("jre"))
            {
                String packageName = mo["PackageName"].ToString();
                writeFile.WriteLine(host + "," + packageName);
                writeFile.Flush();
            }
        }

在不知道什么是
writeFile
或它是如何定义的情况下,我只能建议您使用更简单的
System.IO.File
类,如下所示:

File.AppendAllText(pathToYourFile, host + "," + packageName);
这将自动为您打开、写入和关闭文件。

我使用WMI查询代码创建。
它创建C#代码,并且可以测试查询


这不是一个真正的答案,但可能会有帮助。

我写完后忘了冲洗书写器

String packageName = mo["PackageName"].ToString();
writeFile.WriteLine(host + "," + packageName);
writeFile.Flush();

您如何声明writeFile,以及您遇到了什么样的错误/异常?请发布所有相关代码。您忽略了什么是
writeFile
以及它的定义位置。我添加了writer语句,您仍然应该使用
File.AppendAllText()
File
类中的另一个方法,这要容易得多。如果使用AppendAllText,我首先必须使用“File.WriteAllText”来创建要写入的文件。我只有一个循环,在这个循环中,我写入文件并更改为appendalltext将导致我重写逻辑。除非appendalltext还将创建一个尚未创建的文件。这是不正确的,否则appendalltext将为您创建该文件。从:如果文件不存在,此方法将创建一个文件,将指定的字符串写入该文件,然后关闭file.x。我再试试看。当我尝试使用appendAllText时,它既没有写入文件,也没有抛出错误消息。我将进一步研究。您应该检查您的权限,以确保程序具有写访问权限,还应确保您的路径正确且指向正确的位置,并且您没有从操作中获得任何异常。