繁体   English   中英

在iOS中读取目录结构

[英]Read a directory structure in iOS

我正在尝试读取iPhone应用程序的资源文件夹中的目录。

NSString *path= [[NSBundle mainBundle]  pathForResource:@"Capitalization"  ofType:@"html" inDirectory:@"MyDirectory"];
NSLog(@"Path : %@",path);
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:path];
if(fileExists){
    NSString* content = [NSString stringWithContentsOfFile:path
                                                                         encoding:NSUTF8StringEncoding
                                                                            error:NULL];
    NSLog(@"Data from plist %@",content);
}else {
    NSLog(@"File Not Found");
    //exit(1);  // if file not found exit the application.
}

但是每次我得到NULL。 请帮忙。 我的目录也可以包含另一个目录,在这种情况下,我还必须获取目录名称。

您将要使用:

NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:somePathString error:nil];

这将为您提供所选目录内的文件夹和文件的列表。 如果要搜索子文件夹,则必须创建一个运行此代码的函数并递归调用该函数。

在您的代码中,您正在调用:

NSString *path= [[NSBundle mainBundle]  pathForResource:@"Capitalization"  ofType:@"html" inDirectory:@"MyDirectory"];

那就是在文件夹(BundlePath)/MyDirectory/查找任何名为Capitalization.html东西,以及其中的任何子文件夹。 确保正确使用了该路径,这是您要搜索的实际路径。 如果将Capitalization.html作为资源添加到捆绑软件中,则将永远不会找到它,因为捆绑软件中的所有内容都在单个级别中(捆绑软件“文件夹”中存在的所有内容)。 如果您的Capitalization.html位于名为MyDirectory的文件夹中,并且已通过引用该项目添加到该文件夹​​中,则说明您进行了正确的搜索,它应该可以工作。

长话短说。 添加为资源的文件将始终在捆绑目录中找到。 作为参考添加的文件(和文件夹)将保持其文件夹结构,您可以正确搜索这些文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM