我在Images文件夹中有图像,我想初始化一个包含文件名字符串的数组...
例如:
one.png,two.png,three.png
我想将我的数组初始化为[“one”,“two”,“three”]
答案 0 :(得分:8)
试试这个:
//Retrieve an array of paths in the given directory
NSArray *imagePaths = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: @"/Images/" error: NULL];
if(imagePaths==nil || [imagePaths count]==0) {
//Path either does not exist or does not contain any files
return;
}
NSEnumerator *enumerator = [imagePaths objectEnumerator];
id imagePath;
NSString *newImageName;
NSMutableArray *imageNames = [[NSMutableArray alloc] init];
while (imagePath = [enumerator nextObject]) {
//Remove the file extension
newImageName = [imagePath stringByDeletingPathExtension];
[imageNames addObject:newImageName];
}
代码的第一部分检索给定目录中文件的名称,并将它们添加到imagePaths
数组中。
然后代码的第二部分循环遍历数组中的图像路径,并从末尾删除扩展(使用stringByDeletingPathExtension
方法),将它们附加到imageNames
数组,该数组将包含给定目录中的所有文件都没有任何文件扩展名。
正如Graham Lee
在他的代码中所做的那样,你可以提供一个指向NSError
对象的指针,以便在出现错误时获取有关问题的信息。
答案 1 :(得分:4)
NSError *error = nil;
NSArray *imageFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: @"/path/to/Images/" error: &error];
if (imageFiles == nil) //handle the error