A partir de Catalina, Mac OS ofrece compatibilidad con controles de privacidad en determinadas carpetas. Si, por ejemplo, un script intenta leer un archivo en el escritorio con Importación de archivos múltiples , aparecerá una ventana emergente que indica que JMP Pro 16.app desea acceder a los archivos de su carpeta Escritorio . Si selecciona Aceptar , todo funciona bien. Pero si selecciona No permitir , la instrucción MFI fallará sin un error de tiempo de ejecución, pero podría fallar más adelante (ya que no se devolvió una tabla de datos). Algunos ejemplos de código son:
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 );En este caso, no hay ninguna tabla de datos actual, por lo que dt no está definido y la instrucción Obtener nombres de columnas falla con el siguiente mensaje:
Send Expects Scriptable Object in access or evaluation of 'Send' , dt << /*###*/Get Column Names( String ) /*###*/
La pregunta es: ¿Cuál es la forma recomendada de determinar que el comando Importar varios archivos no pudo abrir y leer un archivo?
Después de seleccionar No permitir que aparezca la ventana emergente, la pregunta no se volverá a formular y MFI simplemente fallará silenciosamente. (Tenga en cuenta que la configuración se puede cambiar en cualquier momento en Preferencias del sistema, Seguridad y privacidad, Privacidad, Archivos y carpetas, JMP Pro 16.app).
En términos más generales, ¿por qué el comando Seleccionar archivo permitió que la ventana de Navegación accediera a los archivos del escritorio en primer lugar? Parece que las carpetas privadas deberían excluirse de la ventana de Navegación.
También veo que esto no es un problema en JMP 15. Por lo tanto, respetar la privacidad de las carpetas es aparentemente algo que se agregó en JMP 16. (Estoy ejecutando 16.2.0).
Hola,
Creo que es posible que desee ponerse en contacto con el soporte técnico ( support@jmp.com ) con esta consulta.
Saludos,
phil
Después de investigar más a fondo este problema, lo he informado a Desarrollo. Parece que macOS no presenta el aviso necesario ( JMP Pro 16.app desea acceder a los archivos en su carpeta <> ) para cada directorio.Solo parece hacerlo para el directorio de descargas. Otros directorios se ignoran por completo. Nuestro equipo de desarrollo continuará explorando este problema.
Con respecto a determinar cuándo la importación de MFI puede estar fallando cuando no se otorga acceso a la carpeta, puede considerar usar lo siguiente:
mfi = Multiple File Import(
<<SET folder=""></SET>
Muchas gracias, Dahlia, por tu paciencia y determinación para ayudar a caracterizar esto. Espero una futura actualización de JMP.
Implementé la lógica que proporcionó, y mi script ahora funciona muy bien y de manera predecible.