-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathDiskId.cs
40 lines (37 loc) · 1.12 KB
/
DiskId.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System.IO;
using System.Management;
namespace UHWID
{
internal class DiskId
{
public static string GetDiskId()
{
return GetDiskId("");
}
private static string GetDiskId(string diskLetter)
{
//Find first drive
if (string.IsNullOrEmpty(diskLetter))
{
foreach (var compDrive in DriveInfo.GetDrives())
{
if (compDrive.IsReady)
{
diskLetter = compDrive.RootDirectory.ToString();
break;
}
}
}
if (!string.IsNullOrEmpty(diskLetter) && diskLetter.EndsWith(":\\"))
{
//C:\ -> C
diskLetter = diskLetter.Substring(0, diskLetter.Length - 2);
}
var disk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + diskLetter + @":""");
disk.Get();
var volumeSerial = disk["VolumeSerialNumber"].ToString();
disk.Dispose();
return volumeSerial;
}
}
}