gpt4 book ai didi

objective-c - cocoa objective-c for os x : get volume mount point from path

转载 作者:太空狗 更新时间:2023-10-30 03:44:25 25 4
gpt4 key购买 nike

我想找到给定 NSString 路径的卷的挂载点。

虽然我是 Cocoa 和 Objective-C 的初学者,但我正在尝试“优雅地”执行此操作,即。使用提供的类之一,而不是进行外部 shell 调用或列出已安装的文件系统并查找路径属于哪个。

我确实找到了 NSWorkspace 和 getFileSystemInfoForPath,但它没有提到挂载点。

有人可以帮忙吗?

谢谢

最佳答案

这应该遵循这些思路:

+ (NSString*)volumeNameForPath:(NSString *)inPath
{
HFSUniStr255 volumeName;
FSRef volumeFSRef;
unsigned int volumeIndex = 1;

while (FSGetVolumeInfo(kFSInvalidVolumeRefNum, volumeIndex++, NULL, kFSVolInfoNone, NULL, &volumeName, &volumeFSRef) == noErr) {
NSURL *url = [(NSURL *)CFURLCreateFromFSRef(NULL, &volumeFSRef) autorelease];
NSString *path = [url path];

if ([inPath hasPrefix:path]) {
return [NSString stringWithCharacters:volumeName.unicode length:volumeName.length]
}
}

return nil;
}

关于objective-c - cocoa objective-c for os x : get volume mount point from path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2033077/

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