c# 获取硬盘与盘符信息的问题

hzjhyp522 2009-08-01 05:20:54
问题1: 已知盘符,如何获取物理硬盘的型号(非序列号)?
问题2: 已知硬盘,如何获取其分区的盘符分别是什么?
...全文
1769 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
Owenini 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 sunzongbao2007 的回复:]

引用 9 楼 wfcfan 的回复:

借LZ的宝地一用,
怎么获取硬盘的尺寸,比如是 2.5寸的还是3.5寸的盘??


拆开了 用卡尺量量
[/Quote]

嗯 是的 用游标卡尺 准确点!
zbh173 2011-11-16
  • 打赏
  • 举报
回复
完美,标记
铜臂阿铁木 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wfcfan 的回复:]

借LZ的宝地一用,
怎么获取硬盘的尺寸,比如是 2.5寸的还是3.5寸的盘??
[/Quote]

拆开了 用卡尺量量
充值内卷 2011-10-22
  • 打赏
  • 举报
回复
太完美了 哈哈哈啊 谢谢最后的大侠
ilishan 2011-08-29
  • 打赏
  • 举报
回复
这么久了,还有分给吗?

private void button5_Click(object sender, EventArgs e)
{
ManagementClass DiskClass;
using (DiskClass = new ManagementClass(@"Win32_Diskdrive"))
{
ManagementObjectCollection Moc = DiskClass.GetInstances();
foreach (ManagementObject Mo_Disk in Moc)
{
Console.WriteLine(Mo_Disk["Model"]);
{
foreach (ManagementObject Mo_Partition in Mo_Disk.GetRelated("Win32_DiskPartition"))
{
Console.WriteLine("{0}", Mo_Partition["Name"]);
foreach (ManagementBaseObject Mbo_Logical in Mo_Partition.GetRelated("Win32_LogicalDisk"))
{
Console.WriteLine("{0}", Mbo_Logical["Name"]);
}
}
}
}
}
}
输出如下:

WDC WD3200BEVS-08VAT2
磁盘 #0,分区 #0
C:
磁盘 #0,分区 #1
D:
E:
F:
G:
H:
General USB Flash Disk USB Device
磁盘 #1,分区 #0
J:

viki117 2011-03-07
  • 打赏
  • 举报
回复
http://www.bitscn.com/pdb/dotnet/200605/24646.html

每次写文件前,判断现在D盘是否有大于50G的可用空间,而且计算出有多少(X-50)G可用的空间,然后判断本次写入的文件是否有足够的空间来写入,不够则考虑删除部分过旧的文件,然后在写入,或者直接提示D盘空间不够用
helloaspdotnet 2010-03-03
  • 打赏
  • 举报
回复
楼主找到方法了没有,我也正需要,能发告知
bdx808 2010-03-03
  • 打赏
  • 举报
回复
不会
帮顶一下
SQL77 2009-08-05
  • 打赏
  • 举报
回复
string[] str = Environment.GetLogicalDrives();
十八道胡同 2009-08-05
  • 打赏
  • 举报
回复
private   string[]   GetMoc()   
{
string[] str = new string[2];
ManagementClass mcCpu = new ManagementClass("win32_Processor");
ManagementObjectCollection mocCpu = mcCpu.GetInstances();
foreach(ManagementObject m in mocCpu)
{
str[0] = m["ProcessorId"].ToString();
}

ManagementClass mcHD = new ManagementClass("win32_logicaldisk");
ManagementObjectCollection mocHD = mcHD.GetInstances();
foreach(ManagementObject m in mocHD)
{
if(m["DeviceID"].ToString() == "C:")
{
str[1] = m["VolumeSerialNumber"].ToString();
break;
}
}
return str;
}
十八道胡同 2009-08-05
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20050517/16/4013955.html
http://download.csdn.net/source/156475
第一个连接里讲的很多
hzjhyp522 2009-08-05
  • 打赏
  • 举报
回复
谢谢lexfu,我研究了几个win32_但是还是不太清楚,麻烦你能不能说得细一点?用哪一个类里的哪一个功能?
  • 打赏
  • 举报
回复
以前用VC弄过不过好像要用到底层函数。不管他是格多少次盘都始终是那一个序列号。这是硬盘出厂序号。。要用底层函数才能获取。
lexfu 2009-08-04
  • 打赏
  • 举报
回复
//Get partition number on each hard disk
ManagementObjectSearcher getPartitionsOnDisk = new
ManagementObjectSearcher("select * from Win32_DiskDrive");
//Get partition property, like Type, volume name,lable
ManagementObjectSearcher getPartitionProperty = new
ManagementObjectSearcher("select * from Win32_LogicalDisk");
//Get partition and disk index.
ManagementObjectSearcher getDiskAndPartitionIndex = new
ManagementObjectSearcher("select * from
Win32_LogicalDiskToPartition");
//Get if partition is boot partition
ManagementObjectSearcher IsBootPartition = new
ManagementObjectSearcher("select * from Win32_DiskPartition");
这是基本要用到的几个类,然后LZ可以根据partition和disk index来写一个判断来决定哪个partition属于那块硬盘,我是用了一个二维数组在进行储存和判断的
hzjhyp522 2009-08-03
  • 打赏
  • 举报
回复
12楼,你用的方法是:检索此计算机上格式为“<驱动器号>:\”的逻辑驱动器的名称。是获取电脑上所有磁盘名称。没有形成硬盘与盘符对应关系。
wanjunfu 2009-08-03
  • 打赏
  • 举报
回复
学习,我也写过这些。只是玩玩而已。
hzjhyp522 2009-08-03
  • 打赏
  • 举报
回复
8楼搞错了,你的代码是遍历硬盘的型号,而不是序列号,而且这种方法获取的序列号也不是硬盘序列号,而是分区的序列号,不是硬盘唯一的序列号。
wfcfan 2009-08-03
  • 打赏
  • 举报
回复
借LZ的宝地一用,
怎么获取硬盘的尺寸,比如是 2.5寸的还是3.5寸的盘??
hizhengfu 2009-08-03
  • 打赏
  • 举报
回复
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach(ManagementObject mo in moc1)
{
HDid = (string)mo.Properties["Model"].Value;
Console.WriteLine("硬盘序列号:"+HDid.ToString ());
}
硬盘序列号截取下就是硬盘型号了。
hzjhyp522 2009-08-03
  • 打赏
  • 举报
回复
高手们有没有解决办法啊?救命啊。
加载更多回复(8)

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧