本文共 2217 字,大约阅读时间需要 7 分钟。
在 macOS 中,Objective-C 可以用来获取磁盘分区信息。以下是一个完整的示例代码,展示如何获取并打印系统中的磁盘分区信息。
#import#include @interface DiskInfo : NSObject +(NSArray *)getDiskInfo; // 获取磁盘分区信息 // 返回一个包含所有磁盘分区的数组 // 每个元素是一个字典,包含以下信息: // - "deviceName" : 磁盘设备名称 // - "diskName" : 磁盘名称 // - "diskFormat" : 磁盘格式 // - "diskSpace" : 磁盘空间 // - "diskUsedSpace" : 磁盘使用空间 // - "diskFreeSpace" : 磁盘剩余空间 // - "diskCapacity" : 磁盘容量 // - "diskGUID" : 磁盘唯一标识符 // - "diskVersion" : 磁盘版本 // - "mountPoint" : 磁盘挂载点 // - "optimalMountPoint" : 最佳挂载点 // - "mediaType" : 媒体类型 // - "mediaIdentifier" : 媒体标识符 @end@implementation DiskInfo+(NSArray *)getDiskInfo { NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *diskDevices = [fileManager getVolumes]; NSMutableArray *diskInfoArray = [NSMutableArray new]; for (NSString *device in diskDevices) { if ([device rangeOfCharacterFrom: "file" to: "file"].length == 0) { // 过滤出非文件系统的磁盘 continue; } NSFileSystemAttributes *attrs = [fileManager getFileSystemAttributesForPath: device]; NSDictionary *diskInfo = [NSDictionary dictionaryWithWiredPropertiesOfAttributes:attrs]; [diskInfoArray addObject: diskInfo]; } return [diskInfoArray sortedArrayUsingComparator:^NSComparisonResult *(NSDictionary *a, NSDictionary *b) { NSString *aName = [a objectForKey: @"diskName"]; NSString *bName = [b objectForKey: @"diskName"]; return [aName compare: bName]; }];}@end
将上述代码添加到您的项目中,需要注意以下几点:
#import#include
iddiskArbitration = nil;NSFileManager *fileManager = [NSFileManager defaultManager];NSArray *diskDevices = [fileManager getVolumes];// 使用上述代码获取磁盘信息NSArray *diskInfo = [DiskInfo getDiskInfo];// 打印磁盘信息for (NSDictionary *disk in diskInfo) { NSLog(@"%@", disk);}
在 "框架" 部分,点击 "+",选择 "Objective-C" -> "diskarbitration",然后点击 "添加"。
这样,您就可以在项目中使用上述代码了。
通过上述代码,您可以轻松地获取并打印系统中的磁盘分区信息。
转载地址:http://wbsfk.baihongyu.com/