我一直在搜索互联网,试图找到答案,但似乎找不到任何东西。
我使用TreeView作为练习使自己成为一个新的文件夹浏览器UserControl,以尝试更多地了解C#,并添加到我正在开发的文件重命名程序中。
我发现TreeView对于我的触摸屏笔记本电脑来说有点小,所以我自己用它来用大图标和+符号重新创建它。
现在,首先,我要获取要添加到TreeView中的驱动器列表(本地和网络),但我似乎无法获得所需的所有信息
在我的电脑中(我使用的是Windows XP,但我会在其他版本上测试此计算机),有11个对象显示
因工作而被编辑
使用System.IO我可以获得一些显示但不是全部的内容。
我有的选择是: AvailableFreeSpace DriveFormat 的DriveType 准备好了 名称 根目录 TOTALFREESPACE 总计TOTALSIZE 的VolumeLabel
以P:\为例,我得到以下内容:
AvailableFreeSpace = 30102499328
DriveFormat = NTFS
DriveType = Network
IsReady = True
Name = P:\
RootDirectory = P:\
TotalFreeSpace = 30102499328
TotalSize = 4397611224320
VolumeLabel = FileSystem6 (3Par)
因此,没有一个选项可以为我提供“我的电脑”中显示的 EDITED 详细信息。
有人能告诉我如何获取这些信息吗?
非常感谢任何帮助。
答案 0 :(得分:0)
您应该能够使用WMI获得所需内容。添加对System.Management.dll的引用并尝试以下操作:
System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_LogicalDisk");
System.Management.ManagementObjectCollection moc = mc.GetInstances();
if (moc.Count != 0)
{
foreach (System.Management.ManagementObject mo in mc.GetInstances())
{
string providerName = string.Empty;
if (mo["ProviderName"] != null)
{
providerName = mo["ProviderName"].ToString();
}
Console.WriteLine("\nName: {0}\nVolume Name: {1}\nProvider Name: {2}",
mo["Name"].ToString(),
mo["VolumeName"].ToString(),
providerName);
}
}
有关Win32_LogicalDisk类的其他属性,请参阅http://msdn.microsoft.com/en-us/library/aa394173(v=vs.85).aspx。