2016-12-16 130 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

相關問題