À partir de Catalina, Mac OS prend en charge les contrôles de confidentialité sur certains dossiers. Si, par exemple, un script tente de lire un fichier sur le bureau avec l'importation de fichiers multiples , une fenêtre contextuelle s'affiche indiquant que JMP Pro 16.app souhaite accéder aux fichiers de votre dossier Bureau . Si vous sélectionnez OK , tout fonctionne correctement. Mais si vous sélectionnez Ne pas autoriser , l'instruction MFI échouera sans erreur d'exécution, mais elle pourrait échouer ultérieurement (car aucune table de données n'a été renvoyée). Voici un exemple de code :
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 );Dans ce cas, il n'y a pas de table de données actuelle, donc dt n'est pas défini et l'instruction Get Column Names échoue avec le message suivant :
Send Expects Scriptable Object in access or evaluation of 'Send' , dt << /*###*/Get Column Names( String ) /*###*/
La question est : quelle est la méthode recommandée pour déterminer que la commande Importation de fichiers multiples n’a pas réussi à ouvrir et à lire un fichier ?
Après avoir sélectionné Ne pas autoriser dans la fenêtre contextuelle, la question ne sera plus posée à l'avenir et MFI échouera tout simplement en silence. (Notez que le paramètre peut être modifié à tout moment dans Préférences Système, Sécurité et confidentialité, Confidentialité, Fichiers et dossiers, JMP Pro 16.app.)
De manière plus générale, pourquoi la commande Sélectionner un fichier permet-elle à la fenêtre de navigation d'accéder aux fichiers du bureau ? Il semble que les dossiers privés devraient être exclus de la fenêtre de navigation.
Je vois également que ce n'est pas un problème dans JMP 15. Le respect de la confidentialité des dossiers est donc apparemment quelque chose qui a été ajouté dans JMP 16. (J'utilise 16.2.0.)
Salut,
Je pense que vous voudrez peut-être contacter le support technique ( support@jmp.com ) avec cette requête.
Salutations,
Phil
Après avoir étudié ce problème plus en détail, j'ai signalé ce problème au développement. Il semble que macOS ne présente pas l'invite nécessaire ( JMP Pro 16.app souhaite accéder aux fichiers de votre dossier <> ) pour chaque répertoire.Il ne semble le faire que pour le répertoire Téléchargements. Les autres répertoires sont complètement ignorés. Notre équipe de développement continuera d'explorer ce problème.
En ce qui concerne la détermination du moment où l'importation MFI peut échouer lorsque l'accès au dossier n'est pas accordé, vous pouvez envisager d'utiliser ce qui suit :
mfi = Multiple File Import(
<<SET folder=""></SET>
Merci beaucoup, Dahlia, pour votre patience et votre détermination à aider à caractériser cela. J'attends avec impatience une future mise à jour de JMP.
J'ai implémenté la logique que vous avez fournie, et mon script fonctionne maintenant très bien et de manière prévisible.