Hola. ¿Hay alguna manera de que un script busque en la computadora del usuario un nombre de archivo dado y devuelva la ruta? Estoy usando un cajero automático Mac y JMP14.3. Estoy interesado en crear un complemento que llame a otro script en la computadora del usuario, pero no sabré dónde ha guardado el script.
En el complemento, estoy pensando en algo como esto:
y = Files In Directory("$HOME", "recursive"); //Returns {}
y = Files In Directory("$HOME", "Recursive"); //Returns {}
y = Files In Directory("$HOME", recursive); //Returns {}
y = Files In Directory("$HOME", Recursive); //Returns {}
y = Files In Directory("$HOME", Recursive(1)); //Returns {}
//All options above just return {}. I'm curious if this is unique to my setup (Mac, JMP14.3).
//Add-in code
path = [command or function to search for "myscript.jsl" on user's computer and return a path];
Include(path, New Context);
//Things I've explored:
//Not certain what the "search" option does, but seemed worth a go.
//This only returns my default directory with "myscript.jsl" appended
//(even though there is no such file in that location)
path = ConvertFilePath("myscript.jsl", search);
//There's also this, but same result as above:
Set File Search Path("$HOME/");
path = ConvertFilePath("myscript.jsl", search);
//As a last resort, I looked at this, thinking maybe if I could get a list of all files,
//I could then search the list for myscript.jsl. Unfortunately I cannot get the "recursive"
//option to work on my machine (Mac, JMP14.3). I imagine this would be a very slow method
//though as there are 1000s of files in a typical user's home directory.
Aparte de eso, no tengo ideas. ¿Alguien tiene alguna sugerencia? Gracias.
Si necesita buscar en toda la unidad, es probable que desee aprovechar cualquier indexación que el SO ya haya hecho, lo cual pensar es posible usando 'find' en la terminal.
find / -name abc.dmg
Puede llamar a esto usando Ejecutar programa. Estoy adivinando la ruta del archivo para encontrar y la sintaxis, pero la llamada podría verse así:
Run Program(
Executable( "/usr/bin/find"),
options( {"/ -name abc.dmg"} )
);Algunas otras cosas a considerar:
- ¿Podría incluir el script en su complemento?
- Esto probablemente será lento, ¿sería más rápido pedirle al usuario que abra el archivo?
- Si el usuario elige el archivo, puede guardar la ruta y no preguntar en ejecuciones posteriores, o puede copiar el archivo a la carpeta de complementos.
Gracias por la sugerencia ih. Investigué esto, pero lamento decir que no estoy realmente bien informado sobre el comando Ejecutar programa para que esto funcione. A primera vista, parece requerir un archivo real en el campo "Ejecutable", en lugar de solo una cadena. Desafortunadamente, esto se desvía hacia territorio desconocido.
He creado un elemento de la lista de deseos relacionado con esto: ¿Es posible tener un complemento para buscar un script y ejecutarlo?
Aprecié las preguntas al final de su respuesta y traté de responderlas en esta publicación del elemento de la lista de deseos.
Gracias de nuevo por tu ayuda.