使用 C# 获取驱动器的卷信息






2.80/5 (7投票s)
使用 C# 获取驱动器的卷信息
引言
首先,我想为我的拙劣英语道歉。 在本文中,我尝试解释如何使用kernel32.dll获取逻辑驱动器的卷信息。
Kernel32.dll
这个 DLL 支持与操作系统相关的能力,例如
- 进程加载
- 上下文切换
- 文件 I/O
- 内存管理
GetVolumeInformation
此函数用于获取驱动器的卷信息。 它提供序列号、卷名和文件类型。
以下是 GetVolumeInformation
函数的声明
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern bool GetVolumeInformation(string Volume, StringBuilder VolumeName,
uint VolumeNameSize, out uint SerialNumber, out uint SerialNumberLength,
out uint flags, StringBuilder fs, uint fs_size);
DllImport
用于导入kernel32.dll文件。 out
变量SerialNumber
将返回给定驱动器的序列号。 以下代码将解释如何获取给定驱动器的卷信息。
uint serialNum, serialNumLength, flags;
StringBuilder volumename = new StringBuilder(256);
StringBuilder fstype = new StringBuilder(256);
bool ok = = GetVolumeInformation(drives, volumename,
(uint)volumename.Capacity - 1, out serialNum, out serialNumLength,
out flags, fstype, (uint)fstype.Capacity - 1);
if (ok)
{
lblVolume.Text = lblVolume.Text + "\n Volume Information of " + drives + "\n";
lblVolume.Text = lblVolume.Text + "\nSerialNumber of is..... " +
serialNum.ToString() + " \n";
if (volumename != null)
{
lblVolume.Text = lblVolume.Text + "VolumeName is..... " +
volumename.ToString() + " \n";
}
if (fstype != null)
{
lblVolume.Text = lblVolume.Text + "FileType is..... " + fstype.ToString() + " \n";
}
希望这能帮到你。 :)
历史
- 2007年12月20日:初始发布