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

本文关键字:磁盘 分区 UUID 获取 NET | 更新日期: 2023-09-27 18:28:56

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

作为参考,我需要能够从当前目录或"最近"的向上装载中获取UUID。

编辑:我的错,应该提前说:它需要在Mono上运行。

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

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

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

您可能需要p/InvokeGetVolumeInformation函数。