gpt4 book ai didi

objective-c - 如何将经典的 HFS 路径转换为 ​​POSIX 路径

转载 作者:行者123 更新时间:2023-11-28 11:35:58 24 4
gpt4 key购买 nike

我正在阅读仍然使用 HFS 样式路径的旧文件,例如 VolumeName:Folder:File

我需要将它们转换成 POSIX 路径。

我不喜欢进行字符串替换,因为它有点棘手,我也不想为此任务调用 AppleScript 或 Shell 操作。

是否有框架功能来完成这个?弃用不是问题。

顺便说一句,这是一个solution for the inverse operation .

最佳答案

Obj-C 和 Swift 中的解决方案作为 NSString/String 的类别/扩展。不可用的 kCFURLHFSPathStyle 样式以与链接问题中相同的方式规避。

Objective-C

@implementation NSString (POSIX_HFS)

- (NSString *)POSIXPathFromHFSPath
{
NSString *posixPath = nil;
CFURLRef fileURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)self, 1, [self hasSuffix:@":"]); // kCFURLHFSPathStyle
if (fileURL) {
posixPath = [(__bridge NSURL*)fileURL path];
CFRelease(fileURL);
}

return posixPath;
}

@end

swift

extension String {

func posixPathFromHFSPath() -> String?
{
guard let fileURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
self as CFString?,
CFURLPathStyle(rawValue:1)!,
self.hasSuffix(":")) else { return nil }
return (fileURL as URL).path
}
}

关于objective-c - 如何将经典的 HFS 路径转换为 ​​POSIX 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55383444/

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