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