1 votos

Búsqueda de elementos en la lista

Estoy intentando buscar dentro de una lista de elementos (concretamente, una lista de archivos de una carpeta) determinados archivos. Sin embargo, no conozco los nombres de estos archivos; todo lo que sé es que todos comienzan con la misma palabra (por ejemplo, "Obra 1", "Obra 2" y "Obra 3"). He probado este script:

tell application "Finder"

    set filelist to name of every item in folder (path to desktop)

    set endlist to {}

    repeat with i from 1 to count filelist
    if {filelist's item i}'s name begins with "Work" then set endlist's end to filelist's item i

    end repeat
end tell

que a primera vista parecería correcto, pero cuando lo ejecuto obtengo el error número -1728 del nombre. (error "Can't get name of {\"file1\"}." número -1728 del nombre de {"file1.txt"}) (este "File1" resulta ser el primer elemento de la lista "filelist")

Sé que applescript puede reconocer si un elemento de la lista comienza con "trabajo", ya que esto:

 if ((some item whose name begins with "Work") exists) then...

funciona bien, así que no estoy seguro de qué hacer a continuación...

P.D. por si acaso, he probado muchas iteraciones de la declaración "If" en el script, incluyendo

  if name of {filelist's item i} begins with "Work" then...

y ninguno ha funcionado...

2voto

Malik hassan Puntos 16

Es un problema sencillo de resolver.

En primer lugar, está pidiendo los nombres de cada artículo.

set filelist to name of every item in folder (path to desktop)

Que devuelve una lista de los nombres. Como elementos de texto .

Entonces quieres hacer tu búsqueda. Pero en tu código estás pidiendo el nombre del elemento de texto.

Por eso se produce el error. El elemento de texto no tiene un nombre.

Cambia la línea:

if {filelist's item i}'s name begins with "Work" then set endlist's end to filelist's item i

a

if filelist's item i begins with "Work" then set endlist's end to filelist's item i

ACTUALIZACIÓN: En respuesta a su comentario.

Puede crear una lista con los nombres de los elementos que se encuentran en el escritorio cuyo nombre comienza, por ejemplo, con "Trabajo"

Hacerlo así puede ser mejor.

Aquí se pide una lista que contenga los nombres de cualquier elemento encontrado cuyo nombre (devuelto como un texto de elemento de texto) comienza con ..

tell application "Finder"

    set filelist to name of every item in folder (path to desktop) whose name begins with "Work"
end tell

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