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

各位朋友,我想要问一下如何获取计算机的所有物理磁盘,不包括可移动的存储设备。
我有一段代码可以获取:
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
virusswb
Rank: 1
等 级:新手上路
威 望:1
帖 子:342
专家分:0
注 册:2005-8-6
收藏
得分:0 
你可以先把所有的分区都获得,然后每个分区使用你的代码

jorden008@
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
virusswb
Rank: 1
等 级:新手上路
威 望:1
帖 子:342
专家分:0
注 册:2005-8-6
收藏
得分:0 
using System.IO;


namespace driver
{
class Program
{
private static void GetSpace()
{

}

static void Main(string[] args)
{
string[] drivers = Environment.GetLogicalDrives();

foreach (string driver in drivers)
{
Console.WriteLine(driver);
DriveInfo driverinfo = new DriveInfo(driver);
Console.WriteLine(driver + "'s freespace is " + (driverinfo.TotalFreeSpace/1024000).ToString()+"MB");
Console.WriteLine(driver + "'s usedspace is " + ((driverinfo.TotalSize - driverinfo.TotalFreeSpace)/1024000).ToString()+"MB");
}

Console.ReadLine();
}
}
}
这个是一个简单的
另外给你一个网页你看看吧,http://dev.yesky.com/msdn/18/2669518.shtml

jorden008@
2007-10-16 11:24
virusswb
Rank: 1
等 级:新手上路
威 望:1
帖 子:342
专家分:0
注 册:2005-8-6
收藏
得分:0 
using System;
using System.IO;
class Test
{ public static void Main()
{
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{ Console.WriteLine("Drive {0}", d.Name);
Console.WriteLine(" File type: {0}", d.DriveType);
if (d.IsReady == true)
{
Console.WriteLine(" Volume label: {0}", d.VolumeLabel);
Console.WriteLine(" File system: {0}", d.DriveFormat);
Console.WriteLine( " Available space to current user:{0, 15} bytes", d.AvailableFreeSpace); Console.WriteLine( " Total available space: {0, 15} bytes", d.TotalFreeSpace);
Console.WriteLine( " Total size of drive: {0, 15} bytes ", d.TotalSize);
}
}
}
}

jorden008@
2007-10-16 11:27
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
heris
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-10-4
收藏
得分:0 
2.0里面好像有DriveInfo 这个类,可以去看看
2007-10-24 12:30
快速回复:获取计算机磁盘问题??
数据加载中...
 
   



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

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