A partire da Catalina, Mac OS fornisce supporto per i controlli sulla privacy su determinate cartelle. Se, ad esempio, uno script tenta di leggere un file sul desktop con Importazione di file multipli , verrà visualizzato un popup che lo dice JMP Pro 16.app desidera accedere ai file nella cartella Desktop . Se selezioni OK , funziona tutto bene. Ma se selezioni Non consentire , l'istruzione MFI avrà esito negativo senza un errore di runtime, ma potrebbe fallire in seguito (poiché non è stata restituita una tabella di dati). Alcuni esempi di codice sono:
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 );In questo caso, non esiste una tabella dati corrente, quindi dt non è definito e l'istruzione Ottieni nomi colonna ha esito negativo con il seguente messaggio:
Send Expects Scriptable Object in access or evaluation of 'Send' , dt << /*###*/Get Column Names( String ) /*###*/
La domanda è: qual è il modo consigliato per determinare che il comando di importazione di file multipli non è riuscito ad aprire e leggere un file?
Dopo aver selezionato Non consentire al popup, la domanda non verrà posta in futuro e MFI fallirà tranquillamente. (Si noti che l'impostazione può essere modificata in qualsiasi momento in Preferenze di Sistema, Sicurezza e privacy, Privacy, File e cartelle, JMP Pro 16.app.)
Più in generale, perché il comando Scegli file ha consentito alla finestra di navigazione di accedere ai file sul desktop in primo luogo? Sembra che le cartelle private dovrebbero essere escluse nella finestra di navigazione.
Vedo anche che questo non è un problema in JMP 15. Quindi il rispetto della privacy delle cartelle è apparentemente qualcosa che è stato aggiunto in JMP 16. (sto eseguendo 16.2.0.)
Ciao,
Penso che potresti voler contattare il supporto tecnico ( support@jmp.com ) con questa query.
Saluti,
Fil