获取NSArray的文件名

时间:2009-08-07 11:32:01

标签: iphone objective-c

我在Images文件夹中有图像,我想初始化一个包含文件名字符串的数组...

例如:

one.png,two.png,three.png

我想将我的数组初始化为[“one”,“two”,“three”]

2 个答案:

答案 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