- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些旧代码,可以使用旧的 FSFindFolder 例程查找特定文件夹。现在我的任务是使这段代码现代化。起初,使用 NSFileManager 的 URLForDirectory 似乎是正确的选择。不幸的是,我发现URLForDirectory不再支持您可以使用FSFindFolder找到的许多文件夹。
您可以使用FSFindFolder找到的文件夹列表非常长,而且其中大多数对我来说没有用。
以下是我确实需要转换的 FSFindFolder 常量及其 URLForDirectory 等效项的部分列表:
FSFindFolder URLForDirectory
============================== ===============
kDesktopFolderType NSDesktopDirectory
kCachedDataFolderType NSCachesDirectory
kApplicationSupportFolderType NSApplicationSupportDirectory
kTemporaryFolderType located by calling NSTemporaryDirectory()
kCurrentUserFolderType located by calling NSHomeDirectory()
kSystemFolderType Not Available
kPreferencesFolderType Not Available
kTrashFolderType Not Available
kAudioComponentsFolderType Not Available
kVolumeRootFolderType Not Available
kSharedUserDataFolderTypeNo Not Available
我的问题:是否有一种标准方法可以在不使用 FSFindFolder 的情况下找到每个标记为“不可用”的文件夹的路径?
最佳答案
我建议,在大多数情况下,现代化代码意味着放弃您最初使用这些文件夹位置的任何内容。例如,在现代代码中,kSystemFolderType
的等效项没有太多合法用途。您应该检查使用这些的每种情况,并询问什么是正确的解决方案来解决旧实现正在解决的高级问题。
如果您确实需要其中某些文件夹的路径,最好的办法是查看 FSFindFolder()
给出的路径,找到最接近您的 NSSearchPathDirectory
,然后只需编写代码以从 URLForDirectory:...
获取该值,并将差异附加为静态相对路径。
一些具体建议:
kPreferencesFolderType
:使用NSUserDefaults
来存储首选项;在应用程序支持中存储非默认值
kTrashFolderType
:使用 -[NSWorkspace recycleURLs:completionHandler:]
或 -performFileOperation:source:destination:files:tag:
和 >NSWorkspaceRecycleOperation
;仅在必要时才将 -[NSFileManager URLForDirectory:...]
与 NSTrashDirectory
kVolumeRootFolderType
:如果您将其与特定卷引用而不是域一起使用,请使用 -[NSURL getResourceValue:forKey:error:]
和键 NSURLVolumeURLKey
kSharedUserDataFolderType
: -URLForDirectory:...
与 NSUserDirectory
,然后附加 @"Shared"
作为路径组件
kAudioComponentsFolderType
:组件管理器已弃用;苹果says没有确切的替代品,但出于某些目的 Audio Component Services是合适的。
关于macos - 使用 URLForDirectory 而不是 FFSfindFolder 定位 Mac OS X 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404239/
我有一些旧代码,可以使用旧的 FSFindFolder 例程查找特定文件夹。现在我的任务是使这段代码现代化。起初,使用 NSFileManager 的 URLForDirectory 似乎是正确的选择
我是一名优秀的程序员,十分优秀!