如何从 URL 确定文件的文件扩展名(Objective-C)
Posted
技术标签:
【中文标题】如何从 URL 确定文件的文件扩展名(Objective-C)【英文标题】:How to determine the file extension of a file from a URL (Objective-C) 【发布时间】:2013-11-30 10:27:32 【问题描述】:我有一个 URL 类型:http://example.com/files/ 我需要确定那里有什么文件(文件的扩展名和名称)。根据扩展,我会做一些事情。 如何确定?
【问题讨论】:
重复问题!您是否先尝试搜索和阅读类似的问题和答案?以下是其中一些:***.com/questions/6921523/… ***.com/questions/4267517/… 或 ***.com/questions/5567711/get-all-folders-of-url 或 ***.com/questions/6094650/… 对不起,我看到了,但这个答案不适合我的情况。我的网址是client.visionshop.me/Img/GetCertificateImage/2057。来自该 URL 的脚本生成下载文件。而且我不知道如何从生成的链接中找到文件的文件名和扩展名。 【参考方案1】:试试
NSString *ext = [[url lastPathComponent] pathExtension];
见https://developer.apple.com/documentation/foundation/nsstring/1407801-pathextension
【讨论】:
【参考方案2】:试试这个,
NSURL *urll = [NSURL URLWithString:@"http://example.com/files/firstFile.com"];
NSString *filenameWithExtension = [urll lastPathComponent];
NSRange *range = [filenameWithExtension rangeOfString:@"."];
使用 substringWithRange 只是那些 ....
的子字符串
NSString *fileName = [string substringWithRange:NSMakeRange(0, range.location)];
NSString *extension = [string substringWithRange:NSMakeRange(10, string.length - range.location-1)];
NSLog(@"%@ %@", fileName, extension);
【讨论】:
抱歉,我没有文件名“firstFile”。只有目录的域名和名称。这个目录有脚本,开始下载一些文件。我需要查找此 URL 的文件和此文件的扩展名。我的网址是client.visionshop.me/Img/GetCertificateImage/2057【参考方案3】:您可以直接使用此代码,只需传递您的 NSUrl 并获得文件扩展名作为回报。
- (NSString *)findExtensionOfFileInUrl:(NSURL *)url
NSString *urlString = [url absoluteString];
NSArray *componentsArray = [urlString componentsSeparatedByString:@"."];
NSString *fileExtension = [componentsArray lastObject];
return fileExtension;
【讨论】:
以上是关于如何从 URL 确定文件的文件扩展名(Objective-C)的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UIDocumentPicker、didPickDocumentsAt urls 获取正确的文件名:[URL]
使用 PHP 从 URL 字符串中获取文件路径/扩展名 [重复]