從 Catalina 開始,Mac OS 支援對某些資料夾的隱私控制。例如,如果腳本嘗試透過「多個文件導入」讀取桌面上的文件,您將收到一個彈出窗口,提示JMP Pro 16.app 希望存取桌面資料夾中的文件。如果您選擇「確定」 ,則一切正常。但如果您選擇Don’t Allow ,MFI 指令將會失敗,且不會出現執行階段錯誤,但稍後可能會失敗(因為未傳回資料表)。一些範例程式碼是:
fileList = Pick File( "Choose Insight File(s)", "~/Downloads", {"csvOnly|csv"}, 1, 0, "", "multiple" );
:
Multiple File Import( ... );
dt = Current Data Table();
allCols = dt << Get Column Names( String );在這種情況下,沒有目前資料表,因此未定義 dt,並且取得列名稱指令失敗並顯示下列訊息:
Send Expects Scriptable Object in access or evaluation of 'Send' , dt << /*###*/Get Column Names( String ) /*###*/
問題是:確定“多文件導入”命令無法開啟和讀取文件的建議方法是什麼?
在彈出視窗中選擇「不允許」後,以後就不會再提出該問題,MFI 也會悄悄失敗。 (請注意,可以隨時在系統偏好設定、安全性和隱私、隱私、文件和資料夾、JMP Pro 16.app 中變更設定。)
更廣泛地說,為什麼「選取檔案」指令首先允許導覽視窗存取桌面上的檔案?看來私人資料夾應該被排除在導航視窗中。
我還發現這在 JMP 15 中不是問題。
你好,
我認為您可能需要聯繫技術支持( support@jmp.com ) 使用此查詢。
問候,
菲爾
在進一步調查此問題後,我已將此問題報告給 Development。 似乎 macOS 沒有提供必要的提示( JMP Pro 16.app 想要訪問您 <> 文件夾中的文件) 對於每個目錄。它似乎只對下載目錄這樣做。 其他目錄被完全忽略。 我們的開發團隊將繼續探索這個問題。
關於在未授予文件夾訪問權限時確定 MFI 導入何時可能失敗,您可能需要考慮使用以下內容:
mfi = Multiple File Import(
<<SET folder=""></SET>
非常感謝大麗花,感謝您耐心和決心幫助描述這一點。 我期待著未來的 JMP 更新。
我實現了您提供的邏輯,我的腳本現在運行良好且可預測。