¿Cómo permito que AppleScript elija cualquier tipo de archivo?

4

Estoy haciendo un script que facilita el cifrado de archivos y en la parte inicial tengo esto:

display dialog "Choose where your file is located."
set directory to POSIX path of (choose folder with prompt "File Location:" default location (path to desktop))
display dialog "Choose your file."
choose file with prompt "File Name:"
set filepath to result

Cuando se solicita un archivo, ¿hay alguna otra forma en la que pueda hacer que pueda elegir algo? (Carpetas, imágenes ...)

    
pregunta James Kin 23.06.2018 - 22:31

1 respuesta

4

No se puede hacer

Las siguientes son diferentes formas de solicitar archivos. No hay forma, en Apple Script puro , de solicitar Archivos o Carpetas al mismo tiempo.

Seleccionar archivo :

set directory to POSIX path of (choose file with prompt "File Location:" default location (path to desktop))

Seleccionar archivos :

set directory to POSIX path of (choose file with prompt "File Location:" default location (path to desktop) with multiple selections allowed)

Seleccionar carpeta :

set directory to POSIX path of (choose folder with prompt "File Location:" default location (path to desktop))

Seleccionar carpetas :

set directory to POSIX path of (choose folder with prompt "File Location:" default location (path to desktop) with multiple selections allowed)

Seleccionar tipos específicos de archivos:

  

Solicitando un tipo específico de archivo

     

Si su script requiere tipos específicos de archivos para procesar, usted   puede usar el parámetro de tipo opcional del comando Choose File para   proporcionar una lista de tipos aceptables. Los tipos pueden especificarse como   cadenas de extensión sin el período inicial (como "jpg" o "png")   o como identificadores de tipo uniformes (como "public.image" o   "com.apple.iwork.pages.sffpages"). Listado 26-3 y Listado 26-4 muestran   cómo solicitar una imagen.

Para imágenes:

set directory to POSIX path of (choose file of type {"public.image"} with prompt "File Location:" default location (path to desktop) with multiple selections allowed)

Fuentes: Guía de secuencias de comandos de automatización de Mac

Usando AppleScriptObjC puede solicitar Archivos o Carpetas. Consulte esta respuesta (si la respuesta vinculada ayudó, por favor, consulte las preguntas y respuestas A):

  

No, no puede hacerlo con los verbos "elegir archivo" o "elegir carpeta", pero   se admite la selección de una carpeta de archivos o (o varios archivos / carpetas)   por el NSOpenPanel subyacente. Así que puedes hacerlo con   AppleScriptObjC. Aquí hay un ejemplo usando [ASObjCRunner] [1] (derivado   de [aquí] [2]):

script chooseFilesOrFolders
  tell current application's NSOpenPanel's openPanel()
      setTitle_("Choose Files or Folders") -- window title, default is "Open"
      setPrompt_("Choose") -- button name, default is "Open"

      setCanChooseFiles_(true)
      setCanChooseDirectories_(true)
      setAllowsMultipleSelection_(true) -- remove if you only want a single file/folder

      get its runModal() as integer -- show the panel
      if result is current application's NSFileHandlingPanelCancelButton then error number -128 -- cancelled
      return URLs() as list
  end tell
end script

tell application "ASObjC Runner"
  activate
  run the script {chooseFilesOrFolders} with response
end tell
     

ASObjCRunner convierte un NSArray de NSURL objetos en un   Lista de AppleScript de file s; los resultados pueden verse algo así como:

{file "Macintosh HD:Users:nicholas:Desktop:fontconfig:", file "Macintosh HD:Users:nicholas:Desktop:form.pdf"}
     

[1]: enlace
  [2]: enlace

Puede usar un cuadro de diálogo que solicite a un usuario que seleccione lo que desea cifrar.

display dialog "Select a type to Encrypt" buttons {"File(s)", "Folder(s)"}
set a to the button returned of the result
if a is "File(s)" then
    set directory to POSIX path of (choose file with prompt "File Location:" default location (path to desktop) with multiple selections allowed)
else
    set directory to POSIX path of (choose folder with prompt "File Location:" default location (path to desktop) with multiple selections allowed)
end if

Por último, revisa mi respuesta aquí para encontrar una forma de cifrar archivos con Apple Script y Automator.

    
respondido por el JBis 24.06.2018 - 00:41

Lea otras preguntas en las etiquetas