2016-12-16 910 views
-1

我得到一个场景,其中文件可能会上传到服务器,以便时间路径将像file://以/ somepath开头的某个路径。 ../我使用NSURL urlWithFilePath转换为服务器。如何判断URL是本地文件路径还是远程文件路径

一旦服务器有文件,就有一种机制让我下载该内容并获取像http://这样的相同文件的远程路径。

现在决定是当我点击图像,我想决定全屏打开这个,但在那之前必须设备是否应用[NSURL URLWithString]或[NSURL fileURLPath]。

任何猜测如何在应用正确打开图像之前检测到这一点。

+1

你不能有一个'文件:'URL到远程服务器。这只适用于本地文件。 – rmaddy

+0

感谢rmaddy,但那不是我的查询答案,我想要从存储在数据库中的字符串路径决定在上载或下载此信息时,如果它的远程或本地路径。 –

+0

如果字符串有一个方案,使用'URLWithString'。如果没有,使用'fileURLWithPath'。 – rmaddy

回答

-2

添加类别 “的NSString + URL.m” 类

-(NSURL*)url 
{ 
    NSURL *myURL; 
if ([self.lowercaseString hasPrefix:@"http://"] || [self.lowercaseString hasPrefix:@"https://"] || [self.lowercaseString hasPrefix:@"file://"]) { 
    myURL = [NSURL URLWithString:self]; 
} 
else 
{ 
    //Default consider it file url path 
    myURL = [NSURL fileUrlWithPath:self]; 
} 
return myURL; 
} 
+0

不,这是不正确的。如果它有任何方案(包括'file:'),则需要使用'URLWithString'。如果字符串表示文件路径,则只使用'fileURLWithPath'。文件路径不会有任何URL方案。像“www.google.com”这样的字符串不是有效的网址。 – rmaddy

+0

文件:????总是本地文件不是远程文件。并检查我的问题,我只处理本地文件路径或远程路径http://或file://,另一个你说的无效url只是错误检查条件,以避免返回零。 –

+0

如果你有一个字符串,比如'file:// some/path/to/a/file.txt',那么你必须使用'URLWithString:'创建'NSURL'。如果你有一个字符串,比如'/ some/path/to/a/file.txt',那么你必须使用'fileURLWithPath:'。 – rmaddy

相关问题