如何从 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 字符串中获取文件路径/扩展名 [重复]

如何从主页中删除 index.php 并从其他 php 文件中删除 .php 扩展名

从 NSData 中查找视频类型

如何从 Firebase 存储下载具有原始扩展名的文件?

如何从网站 url 隐藏 .html 扩展名