9

我注意到了这一点FSPathMakeRef()FSRefMakePath()现在在 OS X 10.8 中已弃用。

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

为什么这些和其他相关功能已被弃用,现在应该使用哪些未弃用的 API 来提供等效功能?

4

1 回答 1

6

用于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];
于 2012-08-27T04:22:00.240 回答