2014-03-07 36 views
0

我需要導入文件夾內的數據。數據來自一個控制科學儀器的Linux機器,供應商將每個測量結果放到一個文件夾中,文件夾內有兩個文件,一個名爲「參數」,另一個名爲「數據」。我的用戶會將這些文件夾複製到他們的Mac並將數據導入到我的程序中。如果我的應用程序沒有沙箱,我沒有問題獲取文件夾的內容,並將參數和數據文件讀入我的應用程序。當我的應用程序被沙箱化時,NSOpenPanel告訴我該文件夾內沒有URL。Mac App沙盒:如何導入沒有擴展名的文件,無圖標

NSArray *files = [panel URLs]; 

當應該有兩個對象時返回一個帶有零對象的數組。我如何讓這些文件對我的沙盒應用程序可見?

回答

0

爲了讓您的用戶更容易,請嘗試按以下方式使用打開面板。這限制了他們選擇一個目錄(而不是兩個文件):

NSOpenPanel *panel = [NSOpenPanel openPanel]; 
[panel setCanChooseDirectories:YES]; 
[panel setCanChooseFiles:NO]; 
[panel setAllowsMultipleSelection:NO]; 
// don't set anything with setAllowedFileTypes: 

您然後將收到的零個或一個URL回(取決於如果用戶按下OK或取消),它指向的目錄。然後使用此URL和NSDirectoryEnumeratorNSFileManager提供的類似文件來獲取目錄中的文件。

另外,還要確保您使用以下方法之一合適的(不推薦)的方式運行面板:

– beginSheetModalForWindow:completionHandler: 
– beginWithCompletionHandler: 
– runModal 
+0

@grandinetti如果我的回答幫助解決這個問題,你會這麼好心接受它? –

相關問題