繁体   English   中英

如何从iOS 5的NSArray中的文件列表中删除文件扩展名

[英]How do I remove the file extension from a list of files in an NSArray in iOS 5

在iOS 5中工作时,我已经从文档目录中读取了文件名列表,该数组称为“文件列表”。 我正在尝试获取不带扩展名的文件名列表。 仅列表中的姓氏已删除扩展名。 有任何想法吗?

- (IBAction)getFile:(id)sender
{  
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory =[paths objectAtIndex:0];
    NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:nil];
    NSString *names = [[[fileList valueForKey:@"description"]componentsJoinedByString:@"\n"]stringByDeletingPathExtension];

    NSLog(@"File Name Is \n%@",names);    
    showFile.text = names; 
}
- (IBAction)getFile:(id)sender
{  
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory =[paths objectAtIndex:0];
    NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:nil];
    NSString *names = nil;
    for (NSString *name in fileList){
        if (!names) names = [[name lastPathComponent] stringByDeletingPathExtension];
        else names = [names stringByAppendingFormat:@" %@",[[name lastPathComponent] stringByDeletingPathExtension]];
    }
    NSLog(@"File Name Is \n%@",names
}

看起来您正在使用数组的描述来获取完整的数组内容,然后正在删除整个文件的扩展名,而不是从每个单独的文件中删除。 尝试先删除文件扩展名:

NSMutableArray *newArray = [NSMutableArray arrayWithCapacity:[fileList count]];
[fileList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [newArray addObject:[obj stringByDeletingPathExtension]];
}];
NSString *names = [newArray componentsJoinedByString:@"\n"];
showFile.text = names;

enumerateObjectsUsingBock方法遍历数组中的每个项目。 在代码块中,获取该对象,删除路径扩展,然后将其添加到新数组中。 在处理完整个数组之后,您可以使它们使用componentsJoinedByString在每个文件名之间添加换行符。

暂无
暂无

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

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