在 Windows 7 上查询win32_NetworkConnection很慢

本文关键字:NetworkConnection 很慢 win32 查询 Windows | 更新日期: 2023-09-27 18:33:59

伙计们,

多年来,我一直很高兴地使用以下C# IsNetworkDrive方法来确定Windows XP下的"这是网络驱动器吗?在 Windows 7 下,它仍然会产生预期的结果,但每次调用需要大约 10 秒的时间......因此,大约一百万倍太长了!

using System;
using System.Collections.Generic;
using System.Management;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (var driveName in Environment.GetLogicalDrives())
                Console.WriteLine(driveName + " " + IsNetworkDrive(driveName.Substring(0,2)));
            Console.Write("Press any key to continue ...");
            Console.ReadKey();
        }
        private static bool IsNetworkDrive(string drive)
        {
            var query = @"SELECT Name FROM win32_NetworkConnection WHERE LocalName='" + drive + "'";
            var seacher = new ManagementObjectSearcher(query);
            var resultset = seacher.Get();
            var count = resultset.Count;
            return count == 1;
        }
    }
}

嘎嘎。我讨厌窗户!

请有人知道如何[性能]确定给定的驱动器号是代表Windows 7和Windows XP(企业SOE)上的本地驱动器还是网络驱动器????

[最好是在 .NET <= 3.5 中,虽然我可以将项目升级到 4.0,但它只需要一个绿地测试,我们现在没有钱。叹息。

大家干杯。基思。

在 Windows 7 上查询win32_NetworkConnection很慢

我正在回答我自己的问题。

更多的谷歌搜索将我带到这篇文章:如何以编程方式发现系统上的映射网络驱动器及其服务器名称?

这个问题中的代码引导我到:DriveInfo.GetDrives(),我将其工作到我的主方法中:

    static void Main(string[] args) {
        foreach (var driveInfo in DriveInfo.GetDrives())
            Console.WriteLine(driveInfo + " " + driveInfo.DriveType);
        Console.Write("Press any key to continue ...");
        Console.ReadKey();
    }

产生:

C:' Fixed
D:' CDRom
E:' Removable
G:' Network
H:' Network
I:' Network
K:' Network
L:' Network
M:' Network
Q:' Network
Press any key to continue ...

。然后离那里不远了:

    // Example drives: "C:" or "L:" ... just the drive-letter and a colon. No backslash. 
    private static bool IsNetworkDrive(string drive) {
        return new DriveInfo(drive).DriveType == DriveType.Network;
    }

在 Windows 7 下的预期 [亚秒] 时间范围内生成预期结果,以非管理员身份运行。

希望这对其他人有所帮助。

大家干杯。基思。

相关文章:
  • 没有找到相关文章