我注意到了这一点FSPathMakeRef()
,FSRefMakePath()
现在在 OS X 10.8 中已弃用。
我有一些代码使用它们来查找路径的规范案例,例如,如果传递“/USeRs”,它将返回“/Users”。
为什么这些和其他相关功能已被弃用,现在应该使用哪些未弃用的 API 来提供等效功能?
我注意到了这一点FSPathMakeRef()
,FSRefMakePath()
现在在 OS X 10.8 中已弃用。
我有一些代码使用它们来查找路径的规范案例,例如,如果传递“/USeRs”,它将返回“/Users”。
为什么这些和其他相关功能已被弃用,现在应该使用哪些未弃用的 API 来提供等效功能?
用于NSURL
存储普通路径和文件引用路径。
来自文件管理器文档(附录 A:不推荐使用的文件管理器功能):
FSMakeFSRefUnicode
给定父目录和 Unicode 名称,构造文件或目录的 FSRef。(在 OS X v10.8 中已弃用。改用 NSURL 或 CFURL API。要按 ID 跟踪文件系统项的行为,请使用 fileReferenceURL 或 CFURLCreateFileReferenceURL 创建文件引用 URL。)
据我所知,Apple 选择完全弃用该类型,转而FSRef
支持文件引用 URL(看起来像)。file:///.file/id=6571367.39068/
如果要规范化字符串路径,可以使用未弃用的 API 执行以下操作:
NSString *canonicalPath = [[[NSURL fileURLWithPath:@"/USeRs"] fileReferenceURL] path];