在OS X 10.8中不推荐使用FSPathMakeRef和FSRefMakePath,有哪些替代方案?

时间:2012-07-29 12:06:01

标签: macos deprecated osx-mountain-lion

我注意到在OS X 10.8中现已弃用FSPathMakeRef()FSRefMakePath()

我有一些代码使用它们来查找路径的规范案例,例如如果通过“/ USeRs”,它将返回“/ Users”。

为什么不推荐使用这些和其他相关功能,现在应该使用哪些非弃用API来提供等效功能?

1 个答案:

答案 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];