繁体   English   中英

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

[英]Programmatically retrieve an OS X disk partition UUID

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

$ diskutil info / | grep UUID

从 C 运行它留给读者作为练习。

如果您想要除根以外的分区,则可以指定挂载点或设备名称(例如 disk0s2)代替/

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

您可以使用 kDADiskDescriptionMediaUUIDKey 获取 UUID。 Aaron Burghardt 在这个邮件列表线程中很好地描述了它。 这是该链接的引述:

获得 DADisk 后,使用 DADiskCopyDescription 获取属性字典,您将在其中找到带有键 kDADiskDescriptionMediaUUIDKey 的 UUID(有关可能感兴趣的其他键,请参见 DADisk.h)。 请注意,DADisk 是 IOMedia object 的包装器,描述字典直接对应于 IOMedia object 中的属性。 此外,CFShow() 可用于将描述字典打印到控制台。

我认为最简单的是使用polkit

http://polkit.googlecode.com/svn/trunk/FileSystem/DiskWatcher.h http://polkit.googlecode.com/svn/trunk/FileSystem/DiskWatcher.m下载 DiskWatcher.h 和.m

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

添加 DiskArbiratation 框架你可以使用

+ (NSString*) diskIdentifierForPath:(NSString*)path;

NSString *UUID1 = [DiskWatcher diskIdentifierForPath:@"/Volumes/Backup900GB"];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM