gpt4 book ai didi

iOS - dirent.h - 当前目录名

转载 作者:行者123 更新时间:2023-11-29 13:06:58 26 4
gpt4 key购买 nike

我已经编写了用于我在 Windows 上的应用程序的虚拟系统 (VFS)。现在,我将我的应用程序移至 iOS,但我遇到了 dirrent 问题。

Windows 端口添加了关于当前文件夹的信息,文件所在的位置。

DIR * dir = opendir(dirName);
char * dirFullPath = dir->patt; //this is missing at iOS

我如何获得该信息? DirName 变量是无用的,因为它是唯一的相对路径。

其次,在 Windows 上,我指定要映射的文件夹作为我的 VFS 的根目录。我怎样才能为 iOS 做同样的事情?比方说,将 VFS 映射到目录 DATA。

最佳答案

NSSearchPathForDirectoriesInDomains() 是一个低级别的 API,除非您出于某些不寻常的原因需要它,否则应该避免使用它。相反,您应该使用 NSURL。这是苹果的官方推荐:

The NSSearchPathForDirectoriesInDomains function behaves like the URLsForDirectory:inDomains: method but returns the directory’s location as a string-based path. You should use the URLsForDirectory:inDomains: method instead.

它是这样使用的:

NSURL *documentsURL = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask].lastObject;

NSURL 对象完全符合您的要求:它是一个包含基本 URL 以及其下的相对 URL 的对象。

如果您正在编写跨平台应用程序,则需要围绕非跨平台的所有内容编写包装器,而文件系统操作是您需要抽象的内容之一。围绕 NSURL 和 NSFileManager 编写一个 C++ 包装器,并让您的包装器在其他平台上使用其他东西。

与使用字符串相比,NSURL 通常速度更快,错误更少,可靠性更高,使用的 RAM 更少。它通常使用低级文件系统/扇区引用。

关于iOS - dirent.h - 当前目录名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18420583/

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