C# 如何在C中通过WMI查找基于不同扩展名的C驱动器文件和子文件夹中的文件路径列表
我需要从整个C驱动器中搜索扩展名mp3和更多的文件,并且只将其路径存储在特定的列表字符串中,目前我只是在控制台上打印,我也会得到重复的结果。即使找到一个文件,我也只想跳过。除了mp3和avi以及更多文件,如何搜索所有类型的扩展名文件C# 如何在C中通过WMI查找基于不同扩展名的C驱动器文件和子文件夹中的文件路径列表,c#,wmi,wmi-query,C#,Wmi,Wmi Query,我需要从整个C驱动器中搜索扩展名mp3和更多的文件,并且只将其路径存储在特定的列表字符串中,目前我只是在控制台上打印,我也会得到重复的结果。即使找到一个文件,我也只想跳过。除了mp3和avi以及更多文件,如何搜索所有类型的扩展名文件 List<string> filesmediaFound = new List<string>(); string machinename = Environment.MachineNa
List<string> filesmediaFound = new List<string>();
string machinename = Environment.MachineName;
string wmifilepath = @"\\" + machinename + @"\root\CIMV2";
string fileSearchQuery = @"SELECT * FROM CIM_DataFile WHERE Drive='C:' AND Extension = 'mp3'";
// ObjectQuery querystring = new ObjectQuery(fileSearchQuery);
using (ManagementObjectSearcher search = new ManagementObjectSearcher(wmifilepath, fileSearchQuery))
{
foreach (ManagementObject result in search.Get())
{
Console.WriteLine( result["Path"].ToString());
}
}
如果您只想搜索文件,那么可以在System.IO中使用目录类
Directory.GetFiles(@"C:\", "*.mp3". SearchOption.AllDirectories)
它不允许我搜索被拒绝访问的文件,比如用户文件夹。。我想通过WMI@sandepi搜索它们,但我怀疑您是否能够使用WMI访问这些文件夹。您可以在代码中处理这种情况。使用WMI API的任何特定原因都会在IO方面遇到困难,请查看链接[因此,请使用WMI@Sandepi查找答案],我在注释中找到了解决问题的可能方法:。如果不起作用,您可能希望自己在目录中运行递归。