我遇到了一个(过时的)代码片段,它使用文件管理器功能(包含在Carbon中)来查找共享应用程序首选项文件夹(在大多数情况下只是" / Library / Preferences")。它类似于:
#include <Carbon/Carbon.h>
...
FSSpec spec = { 0 }; // data type which specifies name and location of a file or folder
FSRef ref; // data type which references in some sense a file or a folder
OSErr err = fnfErr;
// find a 'preferences' type folder (specified by kPreferencesFolderType)
// with the necessary permissions (specified by kUserDomain)
err = FindFolder(kUserDomain, ,
1, &spec.vRefNum, &spec.parID);
// operate some conversions to put the folder path inside a string where you can
// then append the app name to it.
FSpMakeFSRef(&spec, &ref);
FSRefMakePath(&ref, (UInt8*)filename, FL_PATH_MAX);
(kUserDomain
和kPreferencesFolderType
是在CarbonCore / Folders.h中定义的枚举值。)
不幸的是,许多&#34; FS&#34;文件管理器功能似乎已弃用,尤其是那些使用FSSpec
(https://developer.apple.com/library/mac/documentation/Carbon/reference/File_Manager/Reference/reference.html)的功能。
因此我想知道:找到应用程序首选项文件夹的当前正确方法是什么(没有硬连接&#34; Library / Preferences / AppName&#34;到代码中)?感谢
答案 0 :(得分:0)
我敢想象你想要使用NSSearchPathDirectory
- 推测NSFileManager -URLsForDirectory:inDomains:
的东西,可能是NSLibraryDirectory
,你需要自己添加Preferences
位。基于Apple公开的那些选项,我真的不认为你打算自己读取和写入这条路径 - 它只是针对用户默认值,暴露的NSApplicationSupportDirectory
就是你要抛弃其他支持的地方数据