gpt4 book ai didi

objective-c - 返回文件夹或卷的卷名称

转载 作者:行者123 更新时间:2023-12-03 16:25:49 25 4
gpt4 key购买 nike

我需要获取用户选择的任何文件夹的卷名称。引用this topic ,我创建了以下函数。

- (NSString *)getVolumeName:(NSString *)path {
// path is the path of a folder
NSURL *url = [NSURL fileURLWithPath:[path stringByDeletingLastPathComponent]];
NSError *error;
NSString *volumeName;
[url getResourceValue:&volumeName forKey:NSURLVolumeNameKey error:&error];
return volumeName;
}

它在大多数情况下都有效。但如果用户选择已安装的卷,则可能会失败。例如,我将一张 SDHC 卡插入 iMac 的卡槽中。如果我选择这个卷而不是其中的文件夹,上面的函数可以返回硬盘驱动器的名称。返回文件夹或卷的卷名的正确方式是什么?也许使用 AppleScript?

谢谢,

更新

也许像下面这样?

- (NSString *)getVolumeName:(NSString *)path {
NSURL *url = [NSURL fileURLWithPath:[path stringByDeletingLastPathComponent]];
if ([[url path] isEqualTo:@"/Volumes"]) {
return [path lastPathComponent];
} else {
NSError *error;
NSString *volumeName;
[url getResourceValue:&volumeName forKey:NSURLVolumeNameKey error:&error];
return volumeName;
}
}

最佳答案

我目前无法对此进行测试,但我认为您应该直接在给定路径,并且不删除最后一个路径组件:

- (NSString *)getVolumeName:(NSString *)path {
// path is the path of a folder
NSURL *url = [NSURL fileURLWithPath:path];
NSError *error;
NSString *volumeName;
[url getResourceValue:&volumeName forKey:NSURLVolumeNameKey error:&error];
return volumeName;
}

关于objective-c - 返回文件夹或卷的卷名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20519577/

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