gpt4 book ai didi

cocoa - (MACOSX) - 了解已安装的设备是否是从 DMG 安装的

转载 作者:行者123 更新时间:2023-12-03 18:05:36 30 4
gpt4 key购买 nike

无法使用 DiskArbitration 或 FSGetVolumeInfo/GetVolumeParms 找到该信息...

我知道 hdiutil 使用名为 DiskImages 框架的私有(private)框架,但我不想每次需要此信息时都运行外部实用程序...该 API 在哪里?

最佳答案

2015 年 7 月更新

此更新是由 Stan James' new question 提示的.

您可以使用 DiskArbitration 获取此信息框架。要使用下面的示例,您必须链接并#import它。

#import <DiskArbitration/DiskArbitration.h>

...

- (BOOL)isDMGVolumeAtURL:(NSURL *)url
{

BOOL isDMG = NO;

if (url.isFileURL) {

DASessionRef session = DASessionCreate(kCFAllocatorDefault);
if (session != nil) {

DADiskRef disk = DADiskCreateFromVolumePath(kCFAllocatorDefault, session, (__bridge CFURLRef)url);
if (disk != nil) {

NSDictionary * desc = CFBridgingRelease(DADiskCopyDescription(disk));
NSString * model = desc[(NSString *)kDADiskDescriptionDeviceModelKey];
isDMG = ([model isEqualToString:@"Disk Image"]);

CFRelease(disk);

}

CFRelease(session);

}

}

return isDMG;

}

用法:

BOOL isDMG = [someObject isDMGVolumeAtURL:[NSURL fileURLWithPath:@"/Volumes/Some Volume"]];

我希望这会有所帮助。

关于cocoa - (MACOSX) - 了解已安装的设备是否是从 DMG 安装的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2621412/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com