gpt4 book ai didi

c - OS X : How can I get path to Desktop directory on macOS?

转载 作者:太空宇宙 更新时间:2023-11-04 04:27:57 27 4
gpt4 key购买 nike

如何在 macOS 上以字符串形式获取桌面目录的文件路径。我需要用纯 C 或一些 C 级框架来完成它。

最佳答案

如果您坚持只使用 C(为什么?),那么您唯一的选择就是使用已弃用的 API:

#include <limits.h>
#include <CoreServices/CoreServices.h>

...

FSRef fsref;
UInt8 path[PATH_MAX];

if (FSFindFolder(kUserDomain, kDesktopFolderType, kDontCreateFolder, &fsref) == noErr &&
FSRefMakePath(&fsref, path, sizeof(path)) == noErr)
{
// Make use of path
}

如果您需要 CFURL 而不是路径,您可以使用 CFURLCreateFromFSRef() 而不是 FSRefMakePath()

实际上,在研究这个的过程中,我发现了一个我以前不知道的 API。显然,您可以使用它,它显然来自 Cocoa 但仅使用 C 类型:

#include <limits.h>
#include <NSSystemDirectories.h>

char path[PATH_MAX];
NSSearchPathEnumerationState state = NSStartSearchPathEnumeration(NSDesktopDirectory, NSUserDomainMask);
while (state = NSGetNextSearchPathEnumeration(state, path))
{
// Handle path
}

API 的形式是它可能会返回多个结果(在循环的每次迭代中返回一个结果),但您应该只获取一个用于此处的特定用途。在这种情况下,您可以将 while 更改为和 if

请注意,使用此 API,用户域中目录的返回路径可能使用“~”而不是用户主目录的绝对路径。你必须自己解决这个问题。

关于c - OS X : How can I get path to Desktop directory on macOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39649875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com