1 votes

Recherche d'éléments dans une liste

J'essaie de rechercher certains fichiers dans une liste d'éléments (plus précisément, une liste de fichiers d'un dossier). Cependant, je ne connais pas les noms de ces fichiers ; tout ce que je sais, c'est qu'ils commencent tous par le même mot (par exemple, "Travail 1", "Travail 2" et "Travail 3"). J'ai essayé ce 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

ce qui, à première vue, semble correct, mais chaque fois que je l'exécute, j'obtiens le numéro d'erreur -1728 du nom. (erreur "Can't get name of {\"file1\"}." numéro -1728 du nom de {"file1.txt"}) (ce "File1" se trouve être le premier élément de la liste "filelist")

Je sais qu'applescript peut reconnaître si un élément de la liste commence par "travail", depuis ceci :

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

fonctionne bien, donc je ne suis pas sûr de ce qu'il faut faire ensuite...

P.S. juste au cas où, j'ai essayé de nombreuses itérations de l'instruction "If" dans le script, notamment

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

et aucune n'a fonctionné...

2voto

markhunte Points 11634

C'est un problème simple à résoudre.

Vous demandez d'abord le nom de chaque article.

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

qui renvoie une liste des noms. Comme éléments de texte .

Ensuite, vous voulez faire votre recherche. Mais dans votre code vous demandez le nom de l'élément de texte.

C'est pourquoi vous obtenez l'erreur. L'élément de texte n'a pas de nom.

Changez la ligne :

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

à

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

MISE À JOUR : En réponse à votre commentaire.

Vous pouvez créer une liste des noms des éléments trouvés sur le bureau dont le nom commence par exemple par "Travail".

Le faire de cette façon pourrait être mieux.

Ici, vous demandez une liste contenant les noms de tout élément trouvé dont nom (renvoyé sous forme de texte d'article) commence par

tell application "Finder"

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X