从组内容创建字符串数组

时间:2014-09-24 01:11:21

标签: ios objective-c arrays nsfilemanager nsbundle

我项目的支持文件中的组文件夹中有3个xml文件。我正在尝试为组的文件夹中的每个文件创建一个包含文件名(作为字符串)的数组。

示例...名为XLMS的组文件夹

XMLS
   one.xml
   two.xml
   three.xml

我显示的方式,仅在文件位于实际文件夹(蓝色)时才有效。我怎么能对组文件夹(黄色)做同样的事情?请帮忙,谢谢。

viewDidLoad

NSMutableString* bundlePath = [NSMutableString stringWithCapacity:4];

[bundlePath appendString:[[NSBundle mainBundle] bundlePath]];

[bundlePath appendString:@"/XMLS"];

NSArray *stringArray  = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundlePath error:nil];

[stringArray description];

2 个答案:

答案 0 :(得分:1)

文件夹引用将在包中创建一个目录,允许您找出内容。通过使用组,您无法执行此操作。如果您坚持使用a组,则可以选择创建包含所需文件名称的清单。

请注意,这更容易出错,因为您需要确保清单包含正确的文件名(即,如果您更改文件名,则需要确保更新清单)并且还需要加载清单第一。在这种情况下,为什么不想使用文件夹参考?如果你使清单成为一个plist,你可以自动加载它作为一个类似于:

的数组
NSMutableArray *stringArray = [NSArray arrayWithContentsOfFile:manifestPath];

答案 1 :(得分:0)

我选择将文件保存在文件夹引用(蓝色文件夹)中。提供的代码与我的问题相同。最好创建一个与文件夹引用中的文件名匹配的字符串数组。

viewDidLoad

NSMutableString* bundlePath = [NSMutableString stringWithCapacity:4];

[bundlePath appendString:[[NSBundle mainBundle] bundlePath]];

[bundlePath appendString:@"/XMLS"];

NSArray *stringArray  = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundlePath error:nil];

[stringArray description];