NSBundle 的 pathForDirectory 方法?

pathForDirectory method for NSBundle?

如果我在我的包中包含一个文件夹(一个真正的文件夹,蓝色文件夹,而不是黄色组),我如何从我的包中获取该文件夹的路径?我通常使用的方法是...

[[NSBundle mainBundle] pathForResource:fileName ofType:______];

...但是 "type" 是目录吗?是否有 "type" 可供使用,或者是否有另一种方法可以访问包内的目录路径?

还是我的做法全错了,还有其他方法可以在捆绑包中包含可访问文档的文件夹吗?

根据评论中的建议,原来您可以使用空字符串来引用文件夹。因此,可以使用...

访问名为 "myFolder" 的文件夹
[[NSBundle mainBundle] pathForResource:@"myFolder" ofType:@""];

希望这可以帮助其他没有想到它会如此简单的人...

由于是自己添加文件夹,所以知道文件夹的名称,所以可以这样获取路径:

NSString *myDirectoryName = @"myDirectory";
NSString *absolutePathToMyDirectory = [[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:myDirectoryName];

您必须测试此路径是否存在 NSFileManager

否则你仍然可以使用你正在使用的方法,类型可以是nil,所以你可以这样调用它

NSString *absolutePathToMyDirectory = [[NSBundle mainBundle] pathForResource:myDirectoryName ofType:nil];

然后测试结果是否nil

if(absolutePathToMyDirectory) {
    // do stuff related to this path
}

目录也可以有扩展名。如果你的没有,只需为 type 参数传递 @"",-[NSBundle pathForResource:ofType:] 也适用于目录,而不仅仅是文件。最后,目录也是资源:)