Chemin de fichier et applescript

flap

Membre confirmé
26 Février 2005
49
0
35
Salut !

Voilà ce bout de code :

Bloc de code:
tell application "Finder"
move (files in "rudyard:users:flap:desktop" whose file type is "mp3") to "Rudyard:Utilisateurs:flap:Musique:Podcast"
end tell
me renvoie un message d'erreur, il n'arrive pas à localiser le répertoire. J'ai fait un erreur dans le chemin peut-être ? J'ai essayé en français, ça ne marche pas mieux.

Cordialement

jb
 

Vladrow

Membre actif
12 Juin 2004
307
20
Bonjour,

Pour être sûr d'avoir un bon chemin tu peux utiliser cette astuce:
Tu tapes
tell application "Finder"
posix file ""
end tell
Entre les deux guillemets après file tu fais un glisser déposer d'un fichier depuis une fenêtre du finder dans la fenêtre de l'éditeur de script (bien sûr depuis le bon dossier, là tu prends un fichier de ton dossier musiques)

Surtout, tu compiles et tu n'as plus qu'à virer le nom du fichier :) et le mot file et tu as ton chemin parfait.
 

flap

Membre confirmé
26 Février 2005
49
0
35
Le problème était plus emmerdant (ahlala j'ai oublié mes réflexes de prog !). C'est tout simplement que lorsque je fais :

move ancien_emplacement to nouvel_emplacement

et bien ancien_emplacement et nouvel_amplement doivent être des chaînes de caractères, or :

files in desktop whose name contains "truc", ça ne renvoit pas une chaîne donc il faut la convertir comme cela :

(files in desktop whose name contains "truc") as string et ça marche.

De plus dans mon exemple MP3 n'est pas un Ostype valide apparemment.

Voilà il y'avais pas mal d'erreurs finalement ! En ce qui concerne la proposition de passer par du shell je pense que si Applescript offre la possibilité de déplacer lui même un fichier il vaut mieux choisir cette possibilité, le code sera un chouilla plus rapide. Bon oui c'est plus long à taper. :)

Merci beaucoup pour l'astuce Vladrow, ca me sera bien utile !
 

OnyX

Membre actif
Club MacG
31 Mai 2004
959
194
59
~/Desktop
www.titanium-software.fr
flap a dit:
En ce qui concerne la proposition de passer par du shell je pense que si Applescript offre la possibilité de déplacer lui même un fichier il vaut mieux choisir cette possibilité, le code sera un chouilla plus rapide. Bon oui c'est plus long à taper. :)

Je ne suis pas d'accord avec toi... J'ai essayé dans mon application qui utilise beaucoup de commandes unix et j'ai comparé en remplaçant par des commandes Applescript. C'est vraiment beaucoup plus rapide avec les commandes Unix ! Bon, s'il y en a que quelques unes, ce n'est peut-être pas trop visible, mais avec beaucoup, c'est flagrant. ;)
 

flap

Membre confirmé
26 Février 2005
49
0
35
Ah ok, autant pour moi je n'avais jamais essayé. Il me semblait logique pourtant que faire appel à une autre appli demande du temps. C'est bon à savoir merci ! Mais dans mon cas ça ne changera pas grand chose !
 

flap

Membre confirmé
26 Février 2005
49
0
35
Bloc de code:
    tell application "Finder"
        set name of files in "repertoire" whose name contains "nicecast" to ¬
            ((titre & " - " & (weekday of (current date)) as string) & " " & (day of (current date)) as string)
    end tell

Apparemment il y'a une erreur dans la première partie mais je n'arrive pas à voir quoi... pas d'erreur de type cette fois-ci, sans doute une bête erreur de syntaxe mais j'ai beau regarder mon paquet de doc je ne vois pas l'erreur... Merci d'avance, bientôt Applescript n'aura plus de secrets pour moi !
 

flap

Membre confirmé
26 Février 2005
49
0
35
répertoire renvoit vers un répertoire, ça donne Rudyard:users:flap:music:podcast. Mais ce nom de répertoire je l'ai déjà utilisé dans une autre partie du script qui elle fonctionne... C'est bizarre.
 

Didier Guillion

Membre expert
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
flap a dit:
Voilà l'erreur :

Impossible d?obtenir every file of "Rudyard:Users:flap:Music:podcast".


"Rudyard" c'est le nom de ton disque ?

Si "titre" est une constante (d'ailleurs que tu ne defini pas) le premier fichier va etre renommé mais pas le second, car apres le premier changement de nom, le fichier existera et on ne peut renommer un fichier avec un nom de fichier existant.

Essaie de fournir un exemple fonctionnel meme s'il est plus long sinon, on travaille en aveugle.

Voici mon test :
Bloc de code:
tell application "Finder" to set the source_folder to (folder of the front window) as alias

log (source_folder)
set titre to "Mon titre" -- ???

tell application "Finder"
	set name of files in source_folder whose name contains "contest" to ¬
		((titre & " - " & (weekday of (current date)) as string) & " " & (day of (current date)) as string)
end tell

Cordialement
 

Didier Guillion

Membre expert
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
flap a dit:
C'est bon j'ai résolu tous mes problèmes ! Merci.

Pour l'édification des foules,
pour ceux qui auraient le meme probleme et chercheraient une solution,
pour ceux qui ont passés du temps à t'aider,

merci de dire d'ou venait le probleme et la solution trouvée...

Cordialement
 

flap

Membre confirmé
26 Février 2005
49
0
35
Je ne sais pas au juste c'était quoi le problème, j'ai juste remis un "s" à tous mes "file" dans le script :

set name of files in [...]

Voilà, si ça peut aider...

Cordialement (quel joli mot... mais ce n'est qu'un mot n'est ce pas ? Tu as fait une faute d'accord au fait. Passons les autres.;-) )
 

Didier Guillion

Membre expert
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
flap a dit:
Je ne sais pas au juste c'était quoi le problème, j'ai juste remis un "s" à tous mes "file" dans le script :

set name of files in [...]

Voilà, si ça peut aider...

Cordialement (quel joli mot... mais ce n'est qu'un mot n'est ce pas ? Tu as fait une faute d'accord au fait. Passons les autres.;-) )


C'est le "s" qui te manquait que j'avait en trop... ;)

Je te le donne tel quel, je n'ai pas le temps de faire un paquet cadeau, Joyeux Noel.

Cordialement