2012-12-21 34 views
2

我正在使用NSOpenPanel在我的應用程序上設置一個文件夾,但我得到這個文件夾的路徑「file:// localhost/Users/juan/「使用NSOpenPanel獲取文件夾位置刪除文件:// localhost

這是我的代碼:

NSOpenPanel * setDirectory = [NSOpenPanel openPanel]; 
    setDirectory.canChooseFiles=NO; 
    setDirectory.canCreateDirectories=YES; 
    setDirectory.canChooseDirectories=YES; 
    setDirectory.directoryURL=_path; 
    [setDirectory beginSheetModalForWindow:self.window completionHandler:^(NSInteger result) { 
     NSLog(@" results %ld", result); 
     if (NSFileHandlingPanelCancelButton){ 
      NSLog(@"cancel"); 

     } 
     if (NSFileHandlingPanelOKButton) { 

      self.path = [[setDirectory URLs] objectAtIndex:0]; 

     } 

    }]; 
} 

我的問題是如何或我需要做的就是絕對路徑,如什麼‘/用戶/胡安/桌面/’無文件://本地主機。

我真的很欣賞任何指針。

+0

如果用戶選擇多個項目有意義,爲什麼只處理用戶選擇中的一個隨機項目?如果沒有意義,爲什麼不關掉'allowedMultipleSelection'? –

回答

3

爲此,請調用NSURL對象的path方法。

+0

雖然你現在應該只使用URL。你仍然必須使用一條路徑的事物數量很少而且正在減少。 –

1

我發現我使用的問題[bitmapData writeToFile:nameandPath atomically:YES];它給我一個錯誤。
我切換到[bitmapData writeToURL:nameandPath atomically:YES];,一切正常。

+0

區別在於'writeToFile ::'將路徑作爲NSString對象,而'writeToURL ::'將URL作爲NSURL對象。網址是現在引用文件的首選方式。順便說一下,這兩種方法都不推薦使用;你應該改用'writeToURL:options:error:',並在錯誤發生時處理錯誤。 –