如何在.NET中获取磁盘的分区UUID

时间:2013-08-26 04:59:51

标签: c# .net mono filesystems uuid

我需要能够获得分区的分区/文件系统UUID,类似于WinDOS中的VOL和* nix中的ls -l /dev/disks/by-partuuid,但使用C#代码。最好的方法是什么?

作为参考,我需要能够从当前目录或“最近”的安装位置获取UUID。

编辑:我的不好,应该事先说出来:它需要在Mono上运行。

2 个答案:

答案 0 :(得分:2)

您可以为两个平台编写代码,然后根据Environment.OSVersion.Platform在运行时决定使用哪个平台。确保在单独的方法(或类)中编写实现,这样运行时就不会尝试为错误的平台加载pinvoked库。

对于Windows,您可以使用GetVolumeInformation或WMI,如另一个答案中所述。对于linux,您可以使用您在问题中提到的目录,可能与pinvoking readlink或使用Mono.Posix程序集一起使用。

答案 1 :(得分:0)

您可能需要P / Invoke GetVolumeInformation功能。