以编程方式检索OS X磁盘分区UUID



我有一个分区的路径。如何在不使用终端命令的情况下以程序方式检索该分区的UUID?举个例子会更有帮助。

$ diskutil info / | grep UUID

从C中运行这篇文章是留给读者的练习。

如果您想要根以外的分区,可以指定装入点或设备名称(例如disk0s2(来代替/

您可以使用磁盘仲裁框架(Apple参考(。Chris Suter在这个博客上也有一个很好的总结。

您可以使用kDADiskDescriptionMediaUUIDKey来获取UUID。Aaron Burghardt在这个邮件列表线程中描述得很好。以下是该链接的报价:

一旦您有了DADisk,就可以使用DADiskCopyDescription来获得一个属性字典,在其中您将找到密钥为kDADiskDescriptionMediaUUIDKey的UUID(有关可能为兴趣(。注意,DADisk是IOMedia对象和描述字典的包装器直接对应于IOMedia对象中的属性。此外,CFShow((对于打印描述字典到控制台。

我认为最简单的方法是使用polkit

从下载DiskWatcher.h和.mhttp://polkit.googlecode.com/svn/trunk/FileSystem/DiskWatcher.hhttp://polkit.googlecode.com/svn/trunk/FileSystem/DiskWatcher.m

将其添加到您的项目中(它没有ARC,所以如果您使用ARC,请添加-fno objc ARC标志(

添加DiskArbirtation框架你可以使用

+ (NSString*) diskIdentifierForPath:(NSString*)path;
NSString *UUID1 = [DiskWatcher diskIdentifierForPath:@"/Volumes/Backup900GB"];

最新更新