iOS 用PHAsset获取照片名
2021-06-01 本文已影响0人
小和大大
用PHAsset获取手机相册照片名称目前网上有三种方法。
第一种:
[[PHImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
NSURL *url = [info valueForKey:@"PHImageFileURLKey"];
NSString *str = [url absoluteString]; //url>string
NSArray *arr = [str componentsSeparatedByString:@"/"];
NSString *imgName = [arr lastObject];
NSLog(@"imgName:%@",imgName);
}]
这种方法是通过获取图片的URL路径,然后再获取图片名称。经过多次测试,图片URL路径有时候可以获取到,有时候获取不到,所以会导致图片名称有时候获取不到,所以这种方法并不靠谱。
第二种
NSArray *resources = [PHAssetResource assetResourcesForAsset:asset];
NSString *orgFilename = ((PHAssetResource*)resources[0]).originalFilename;
NSLog(@"orgFilename:%@",orgFilename);
经过测试,这种方法只有在iOS 9.0以上的系统才有作用,iOS8.0用这个方法获取不到,所以这种方法并不靠谱。
第三种(靠谱的方法)
NSString *filename = [asset valueForKey:@"filename"];
NSLog(@"filename:%@",filename);
获取本地路径下图片名
//从路径中获得完整的文件名 (带后缀) 对从相册中取出的图片,视频都有效。
NSString *fileName = [filePath lastPathComponent];
//获得文件名 (不带后缀)
NSString *fileName1 = [filePath stringByDeletingPathExtension];
//获得文件的后缀名 (不带'.')
NSString *suffix = [filePath pathExtension];
参考链接:https://blog.csdn.net/u010545480/article/details/77703593