iPhone中,在网络中的数据流中提取链接中的文件名称时,有很多方法,这里总结一些。
方法一:最直接。
1 NSString * urlString = @"http://www.baidu.com/img/baidu_logo_fqj_10.gif";
2 NSString *fileName = [urlString lastPathComponent];
3 NSLog(@"%@",fileName);
2 NSString *fileName = [urlString lastPathComponent];
3 NSLog(@"%@",fileName);
方法二:根据字符或者时字符串分割。
Object -C
1 NSString *link = @"http://www.baidu.com/img/baidu_logo_fqj_10.gif";
2
3 NSString *filename = [[NSString alloc] init];
4 NSArray *SeparatedArray = [[NSArray alloc]init];
5 SeparatedArray =[link componentsSeparatedByString:@"/"];
6 filename = [SeparatedArray lastObject];
7
8
9 NSLog(@"%@",SeparatedArray);
10 NSLog(@"%@",filename);
11
12 [filename release];
2
3 NSString *filename = [[NSString alloc] init];
4 NSArray *SeparatedArray = [[NSArray alloc]init];
5 SeparatedArray =[link componentsSeparatedByString:@"/"];
6 filename = [SeparatedArray lastObject];
7
8
9 NSLog(@"%@",SeparatedArray);
10 NSLog(@"%@",filename);
11
12 [filename release];
方法三:将链接看成路径。
1 NSString * urlString = @"http://www.baidu.com/img/baidu_logo_fqj_10.gif";
2 NSArray *urlCom = [[NSArray alloc]initWithArray:[url pathComponents]];
3
4 NSLog(@"%@",[urlCom lastObject]);
5
6 [urlCom release];
2 NSArray *urlCom = [[NSArray alloc]initWithArray:[url pathComponents]];
3
4 NSLog(@"%@",[urlCom lastObject]);
5
6 [urlCom release];
方法四:NSRange.它在截取二进制文件的时候十分方便。
1 NSString * urlString = @"http://www.baidu.com/img/baidu_logo_fqj_10.gif";
2 NSString * fileName;
3
4 NSRange range = [urlString rangeOfString:@"/" options:NSBackwardsSearch];
5
6 if (range.location != NSNotFound)
7 {
8 fileName = [urlString substringFromIndex:range.location+1];
9
10 if([[fileName lowercaseString]hasSuffix:@".gif"])
11 {
12 NSLog(@"%@",fileName);
13 }
14 else
15 {
16 }
17 }
18 else
19 {
20 return;
21 }
22
2 NSString * fileName;
3
4 NSRange range = [urlString rangeOfString:@"/" options:NSBackwardsSearch];
5
6 if (range.location != NSNotFound)
7 {
8 fileName = [urlString substringFromIndex:range.location+1];
9
10 if([[fileName lowercaseString]hasSuffix:@".gif"])
11 {
12 NSLog(@"%@",fileName);
13 }
14 else
15 {
16 }
17 }
18 else
19 {
20 return;
21 }
22