C# 如何在C中检测从一台服务器到另一台服务器的空闲空间和磁盘信息#
如果网络上有3台电脑,如果我想从另一台电脑检测一台电脑的可用空间和磁盘详细信息,那么如何进行。。。 我找到了这个代码。但我不知道我应该如何测试它,以了解它是否工作。 这条路对吗C# 如何在C中检测从一台服务器到另一台服务器的空闲空间和磁盘信息#,c#,.net,C#,.net,如果网络上有3台电脑,如果我想从另一台电脑检测一台电脑的可用空间和磁盘详细信息,那么如何进行。。。 我找到了这个代码。但我不知道我应该如何测试它,以了解它是否工作。 这条路对吗 public Hashtable ReadFreeSpaceOnNetworkDrives() { //create Hashtable instance to hold our info Hashtable driveInfo = new Hashtable(); //query the
public Hashtable ReadFreeSpaceOnNetworkDrives()
{
//create Hashtable instance to hold our info
Hashtable driveInfo = new Hashtable();
//query the win32_logicaldisk for type 4 (Network drive)
SelectQuery query = new SelectQuery("select name, FreeSpace from win32_logicaldisk where drivetype=4");
//execute the query using WMI
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
//loop through each drive found
foreach (ManagementObject drive in searcher.Get())
{
//add the name & freespace to our hashtable
driveInfo.Add("Drive", drive["name"]);
driveInfo.Add("Space", drive["FreeSpace"]);
}
return driveInfo;
}
更新:
我得到了问题的答案,但我得到了代码,但它是在控制台应用程序中,我希望在windows窗体应用程序中以图形形式表示磁盘空间和驱动器信息。我如何使用此代码并开始执行此操作
ManagementScope scope = new ManagementScope("\\\\10.74.160.126\\root\\cimv2");
scope.Connect();
ObjectQuery query = new ObjectQuery( "SELECT * FROM Win32_OperatingSystem");
SelectQuery query1 = new SelectQuery("Select * from Win32_LogicalDisk");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(scope, query1);
ManagementObjectCollection queryCollection1 = searcher1.Get();
foreach (ManagementObject m in queryCollection)
{
// Display the remote computer information
Console.WriteLine("Computer Name : {0}",
m["csname"]);
Console.WriteLine("Windows Directory : {0}",
m["WindowsDirectory"]);
Console.WriteLine("Operating System: {0}",
m["Caption"]);
Console.WriteLine("Version: {0}", m["Version"]);
Console.WriteLine("Manufacturer : {0}", m["Manufacturer"]);
Console.WriteLine();
}
foreach (ManagementObject mo in queryCollection1)
{
Console.WriteLine(" Disk Name : {0}", mo["Name"]);
Console.WriteLine(" Disk Size : {0}", mo["Size"]);
Console.WriteLine(" FreeSpace : {0}", mo["FreeSpace"]);
Console.WriteLine(" Disk DeviceID : {0}", mo["DeviceID"]);
Console.WriteLine(" Disk VolumeName : {0}", mo["VolumeName"]);
Console.WriteLine(" Disk SystemName : {0}", mo["SystemName"]);
Console.WriteLine("Disk VolumeSerialNumber : {0}", mo["VolumeSerialNumber"]);
Console.WriteLine();
}
Console.ReadLine();
}
变为c#。这可能会对你有所帮助 代码检查运行此程序的pc上的所有驱动器。它返回一个表,每个驱动器有2个条目。一个带名称,一个带可用空间。您只需编写一个使用此方法并显示此数据的简单程序。应该可以从远程计算机查询驱动器。也许这篇文章可以告诉你更多 编辑:
-1:你提供的链接中的代码是VBScript,这对回答这个问题没有帮助,因为在互联网上总是有一个vb到c的转换器。这是一个只有链接的答案。请包括你链接的文章的要点;它可能在将来不可用。
public Hashtable ReadFreeSpaceOnNetworkDrives(String FullComputerName)
{
ManagementScope scope = new ManagementScope(fullComputerName);
scope.Connect();
//create Hashtable instance to hold our info
Hashtable driveInfo = new Hashtable();
//query the win32_logicaldisk for type 4 (Network drive)
SelectQuery query = new SelectQuery("select name, FreeSpace from win32_logicaldisk where drivetype=4");
//execute the query using WMI
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope,query);
//loop through each drive found
foreach (ManagementObject drive in searcher.Get())
{
//add the name & freespace to our hashtable
driveInfo.Add("Drive", drive["name"]);
driveInfo.Add("Space", drive["FreeSpace"]);
}
return driveInfo;
}