1 votos

Obtener la ruta del archivo del último archivo agregado en una carpeta - Mac OS 10.9

Como aprendí de google y la hermana de la pila de sitios, esta es la solución de trabajo me he encontrado con para obtener la ruta de acceso de último añadido archivo en una carpeta. Pero esto no está dando el resultado exacto. Estoy usando Mavericks (OS 10.9)

set myFolder to "/Users/lawsome/folder"
tell application "Finder" to set latestFile to the last item of (sort files of (POSIX file myFolder as alias) by creation date) as alias
            set latestpath to POSIX path of latestFile
set latestpath to POSIX path of latestFile

Finalmente, José de Alban de la respuesta en aquí@askdiff da una precisa lista ordenada utilizando los millones de dólares de la terminal de comandos. ¿Cómo puedo obtener la ruta de acceso del archivo de la última entrada en esta lista.

O alguna forma de obtener la ruta deseada.

2voto

qarma Puntos 71

El AppleScript código es como el pensamiento es llegar a la creation date más que el date added. Buscador y los Eventos del Sistema que no almacene date added información en AppleScript. Si se Yosemite, usted podría haber hecho con AppleScriptObjC. Pero, con Mavericks, la única vía que se me ocurre es por la manera de shell scripting.

A través de un script de bash:

F=~/folder \
&& [[ -d "$F" ]] \
&& mdls -name kMDItemFSName -name kMDItemDateAdded -raw "$F"/* \
 | xargs -0 -I {} echo {} \
 | paste -sd" \n" - - \
 | sort \
 | tail -1 \
 | cut -f4- -d" " \
 | printf '%s\n' "$F/$(cat)"

Desde dentro de un AppleScript:

AppleScript tiene la capacidad de ejecutar comandos de shell usando do shell script. Puede ejecutar el comando completo sobre el uso de do shell script, que es probablemente lo que la mayoría de la gente haría. Pero, sólo para fines de demostración, voy a mezclar con un poco de AppleScripting demasiado.

property text item delimiters : space

set myFolder to "/Users/lawsome/folder" -- Folder to be evaluated

-- Assemble shell command
set sh to the contents of {¬
    "[[ -d", quoted form of myFolder, "]]", "&&", ¬
    "mdls", "-name kMDItemFSName", "-name kMDItemDateAdded", ¬
    "-raw", [quoted form of myFolder, "/*"], ¬
    "|", "xargs", "-0 -I {} echo {}", ¬
    "|", "paste", "-sd' \\n' - -", ¬
    "|", "sort"} as text

do shell script sh -- run the bash command
set latestFileAddedToFolder to the last paragraph of the result
--> e.g. 2018-08-13 08:02:52 +0000 Some File Name.txt

-- Split text up into date components and filename text
set [{yyyy, m, dd, HH, MM, SS, "+", timezone}, filename] to ¬
    [words 1 thru 8, text 27 thru -1] of latestFileAddedToFolder

-- Construct AppleScript date object from date components
tell the (current date) to set ¬
    [dateAdded, year, its month, day, time] to ¬
    [it, yyyy, m, dd, hours * HH + minutes * MM + SS]

set pathToMostRecentlyAddedFile to myFolder & "/" & filename

return contents of {pathToMostRecentlyAddedFile, ¬
    "was added to its containing folder", myFolder, ¬
    "on", date string of dateAdded, ¬
    "at", time string of dateAdded} as text

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X