我已经编写了虚拟系统(VFS),用于Windows上的应用程序。现在,我将我的应用程序移到了iOS,我对dirrent有异议。
Windows端口添加了关于文件所在的当前文件夹的信息。
DIR * dir = opendir(dirName);
char * dirFullPath = dir->patt; //this is missing at iOS我怎么才能得到那个信息?DirName变量是无用的,因为它的唯一相对路径。
其次,在windows上,我指定要映射为VFS根目录的文件夹。我怎样才能为iOS做同样的事情呢?比方说,将VFS映射到目录数据。
发布于 2013-08-25 08:40:52
NSSearchPathForDirectoriesInDomains()是一个低级别的API,除非您出于某些不寻常的原因需要它,否则应该避免它。相反,您应该使用NSURL。这是苹果的官方建议:
NSSearchPathForDirectoriesInDomains函数的行为类似于URLsForDirectory:inDomains:方法,但将目录的位置返回为基于字符串的路径。您应该使用URLsForDirectory:inDomains: method。
它是这样用的:
NSURL *documentsURL = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask].lastObject;NSURL对象完全可以做您想做的事情:它是一个包含基本URL的对象,然后是其中的一个相对URL。
如果您正在编写跨平台应用程序,您需要为所有不是跨平台的东西编写一个包装器,而文件系统操作是您需要抽象的事情之一。围绕NSURL和NSFileManager编写一个C++包装器,让包装器在其他平台上使用其他工具。
与使用字符串相比,NSURL通常速度更快、错误更少、可靠,并且使用更少的RAM。它通常使用低级别的文件系统/扇区引用。
发布于 2013-08-24 17:06:19
https://stackoverflow.com/questions/18420583
复制相似问题