Pregunta

Me preguntaba cómo devolver solo la extensión del archivo de una cadena. He probado la variable 'establecida para nombrar la extensión de ...' detallada en este Pregunta, pero eso solo parece funcionar para extensiones reconocidas. La idea es ordenar archivos con la extensión '.Meta' en su propia colección.

Lo que tengo ahora parece

tell application "Finder'
   set everyName to name of every item in entire contents of this_folder
end tell

set metaFiles to {}

repeat with n from 1 to count of everyName
   set currentName to item n of everyName
   set currentExt to last word of currentName --this assignment fails
   if currentExt is "meta" then
      set end of metaFiles to currentExt
   end if
end repeat

Soy nuevo en AppleScript, así que aprecio toda la ayuda/dirección. ¡Gracias!

Editar: solución hacky

Resolví esto usando la función dividida descrita aquí para romper el nombre de archivo después de cada período. Agarré la última cadena, me aseguré de que no fuera lo mismo que la primera cadena en caso de que no hubiera caracteres de período, y luego almacené el nombre de archivo correspondiente.

¿Fue útil?

Solución

El nombre incluye la extensión del archivo, ya sea que el buscador lo reconozca o no. Así que solo ordena el nombre como este ...

tell application "Finder"
    set metaFiles to (every item in entire contents of this_folder whose name ends with "meta") as alias list
end tell

Otros consejos

Si no está obteniendo una extensión de nombre, asegúrese de que realmente haya una y que no esté mirando el final del nombre. Si va a mover archivos, también deberá obtener la ruta, y no solo el nombre. Tampoco creo que hacer una lista de sus extensiones sea a lo que está buscando, tampoco se usan varios personajes diferentes para los límites de las palabras, pero un período no es uno de ellos.

¿Por qué no pedirle a Finder los elementos de su archivo?

tell application "Finder"
    set metaFiles to (every item in entire contents of this_folder whose name extension is "meta") as alias list
end tell
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top