首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS - dirent.h -当前目录名

iOS - dirent.h -当前目录名
EN

Stack Overflow用户
提问于 2013-08-24 16:19:57
回答 2查看 1.6K关注 0票数 2

我已经编写了虚拟系统(VFS),用于Windows上的应用程序。现在,我将我的应用程序移到了iOS,我对dirrent有异议。

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

代码语言:javascript
复制
DIR * dir = opendir(dirName);
char * dirFullPath = dir->patt; //this is missing at iOS

我怎么才能得到那个信息?DirName变量是无用的,因为它的唯一相对路径。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-25 08:40:52

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

NSSearchPathForDirectoriesInDomains函数的行为类似于URLsForDirectory:inDomains:方法,但将目录的位置返回为基于字符串的路径。您应该使用URLsForDirectory:inDomains: method。

它是这样用的:

代码语言:javascript
复制
NSURL *documentsURL = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask].lastObject;

NSURL对象完全可以做您想做的事情:它是一个包含基本URL的对象,然后是其中的一个相对URL。

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

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

票数 1
EN

Stack Overflow用户

发布于 2013-08-24 17:06:19

请参见` `NSFileManager,因为它为文件系统提供了标准的iOS接口。

Class/Reference/Reference.html

同时,你也应该彻底理解这一点。

https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemProgrammingGuide.pdf

(请参阅iOS一节)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18420583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档