我需要能够获取分区的分区/文件系统 UUID,类似于VOL
在 WinDOS 和ls -l /dev/disks/by-partuuid
*nix 中的方式,但使用 C# 代码。最好的方法是什么?
作为参考,我需要能够从当前目录或向上的“最近”挂载中获取 UUID。
编辑:我的错,应该提前说:它需要在 Mono 上运行。
我需要能够获取分区的分区/文件系统 UUID,类似于VOL
在 WinDOS 和ls -l /dev/disks/by-partuuid
*nix 中的方式,但使用 C# 代码。最好的方法是什么?
作为参考,我需要能够从当前目录或向上的“最近”挂载中获取 UUID。
编辑:我的错,应该提前说:它需要在 Mono 上运行。
您可以为这两个平台编写代码,然后在运行时根据使用Environment.OSVersion.Platform
哪一个来决定。确保在单独的方法(或类)中编写实现,这样运行时就不会尝试为错误的平台加载 pinvoked 库。
对于 Windows,您可以使用 GetVolumeInformation 或 WMI,如另一个答案中所述。对于 linux,您可以将问题中提到的目录与 pinvoking readlink 或使用 Mono.Posix 程序集结合使用。
您可能需要 P/Invoke GetVolumeInformation函数。