| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖
标题:获取计算机磁盘问题??
取消只看楼主 加入收藏
tel1982
Rank: 3Rank: 3
来 自:水星
等 级:新手上路
威 望:8
帖 子:852
专家分:0
注 册:2006-10-21
收藏
 问题点数:0 回复次数:3 
获取计算机磁盘问题??

各位朋友,我想要问一下如何获取计算机的所有物理磁盘,不包括可移动的存储设备。
我有一段代码可以获取:
try
{
ManagementObject disk = new ManagementObject(
"win32_logicaldisk.deviceid=\"c:\"");

disk.Get();
string totalByte = disk["FreeSpace"].ToString();
long freeDiskSpaceMb = Convert.ToInt64(totalByte) / 1024 / 1024;
textBox1.AppendText("C:磁盘剩余空间:" + freeDiskSpaceMb + "M \n");

disk = new ManagementObject(
"win32_logicaldisk.deviceid=\"d:\"");

disk.Get();
totalByte = disk["FreeSpace"].ToString();
freeDiskSpaceMb = Convert.ToInt64(totalByte) / 1024 / 1024;
textBox1.AppendText("D:磁盘剩余空间:" + freeDiskSpaceMb + "M \n");

disk = new ManagementObject(
"win32_logicaldisk.deviceid=\"e:\"");

disk.Get();
totalByte = disk["FreeSpace"].ToString();
freeDiskSpaceMb = Convert.ToInt64(totalByte) / 1024 / 1024;
textBox1.AppendText("E:磁盘剩余空间:" + freeDiskSpaceMb + "M \n");

disk = new ManagementObject(
"win32_logicaldisk.deviceid=\"f:\"");

disk.Get();
totalByte = disk["FreeSpace"].ToString();
freeDiskSpaceMb = Convert.ToInt64(totalByte) / 1024 / 1024;
textBox1.AppendText("F:磁盘剩余空间:" + freeDiskSpaceMb + "M \n");
}
catch (Exception)
{
return;
}
就是这段代码。
但是我发现这段代码不足的是只能一个一个的取,不知道各位有没有更好的获取方法把所有的硬盘名称一下全取出来,如果有的话,还望多多指教。

[此贴子已经被作者于2007-10-16 10:38:11编辑过]

搜索更多相关主题的帖子: 计算机 磁盘 获取 
2007-10-16 10:36
tel1982
Rank: 3Rank: 3
来 自:水星
等 级:新手上路
威 望:8
帖 子:852
专家分:0
注 册:2006-10-21
收藏
得分:0 
各位高手帮忙一下咯,小弟现在急需改善这段代码。

Face up to life with smiles no matter what happens
2007-10-16 10:47
tel1982
Rank: 3Rank: 3
来 自:水星
等 级:新手上路
威 望:8
帖 子:852
专家分:0
注 册:2006-10-21
收藏
得分:0 
我的下面这段代码是获取所有的盘符和磁盘空间:
SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject disk in searcher.Get())
{
//把所有盘符循环赋给数组
DiskNo[i] = Convert.ToString(disk["Name"]);
DiskNoList += DiskNo[i] + "\\" + "$";
//可用空间
try
{
//将所有可用磁盘空间循环赋给数组
DiskFreeSpace = Convert.ToInt64(disk["FreeSpace"]) / 1024 / 1024;
DFS[i] = DiskFreeSpace;
DFSList += DFS[i] + "M" + "$";
}
catch
{
return;
}
i++;
}
但是这段代码的不足之处在于它同时也取得了软盘的和光驱的盘符,如果我想要去掉软盘和光驱的盘符,我又应该进行怎样的操作呢?

Face up to life with smiles no matter what happens
2007-10-16 10:59
tel1982
Rank: 3Rank: 3
来 自:水星
等 级:新手上路
威 望:8
帖 子:852
专家分:0
注 册:2006-10-21
收藏
得分:0 
你说的那个网页我以前看过,我的这段代码就是根据哪个来做的,现在我想要改进的更好一点,就是想我上面所说那样,去掉软驱和光驱的盘符,但是我不知道怎样做?

Face up to life with smiles no matter what happens
2007-10-16 11:47
快速回复:获取计算机磁盘问题??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016582 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved