una todos ruta que por muestra mis mac imagenes externo extension disco desaparecieron crear como carpeta buscar archivos objective-c macos applescript finder

objective-c - todos - finder no muestra archivos



Inicie la ventana del buscador de OSX con archivos específicos seleccionados (7)

Estoy tratando de ejecutar programáticamente una ventana de OSX Finder desde un proyecto de Xcode. Necesito la ventana para abrir una carpeta específica y tener archivos específicos dentro de esa carpeta seleccionados automáticamente.

¿Alguien sabe cómo hacer esto en los parámetros objetivo c, applescript o Finder de línea de comandos?

¡Gracias!


Al abrir un archivo en la path :

NSString* path = @"/Users/user/Downloads/my file" NSArray *fileURLs = [NSArray arrayWithObjects:[NSURL fileURLWithPath:path], nil]; [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];


Estoy descubriendo que activateFileViewerSelectingURLs no está funcionando en Yosemite (al menos cuando está en un espacio separado de Finder). Causará un cambio al espacio del Finder pero no parecerá seleccionar la URL. Utilizando:

  • (BOOL)selectFile:(NSString *)fullPath inFileViewerRootedAtPath:(NSString *)rootFullPath

cambiará espacios de la aplicación de pantalla completa y seleccionará la ruta.


Otro sabor AppleScript: el comando de revelación del Finder abrirá una ventana a la carpeta contenedora y seleccionará el (los) elemento (s). Si hay varias carpetas que contienen, se abrirán varias ventanas del Finder.

tell application "Finder" to reveal {someAlias, "path/to/POSIXfile" as POSIX file, etc}


Versión Objective-C:

NSArray *fileURLs = [NSArray arrayWithObjects:fileURL1, /* ... */ nil]; [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];


Versión Swift:

let paths = ["/Users/peter/foo/bar.json"] let fileURLs = paths.map{ NSURL(fileURLWithPath: $0)} NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs(fileURLs)


Versión de Swift 3.2 / 4.0: NSWorkspace.shared.activateFileViewerSelecting([outputFileURL])


$ open -R <path-to-reveal>