script fonctionne plus avec LEOPARD = message d'erreur "class cfol"

LACK

Membre actif
21 Novembre 2006
109
2
Bonjour,

j'avais fait un script grâce à vous :zen: sur le forum qui marchait très bien sur Tiger.

Mais voilà avec leopard installé j'ai droit à ce message :

"il est impossible de rendre alias "Exemple:Raccourci Contents" en type "class cfol"


en fait le script déplacer des fichier en utilisant un alias standard. (maintenant ça à l'air de poser problême)


voici le script de base :


--on obtient le chemin vers le dossier "Applications" quel que soit le nom du disque
property pathToAppFolder : (path to applications folder) as string

--on ajoute le nom du dossier pour avoir le chemin complet
property D1 : (pathToAppFolder & "Exemple:Contenu:")
property D4 : (pathToAppFolder & "Exemple:Raccourci Contents:")
property pass : "1234"

on run
set thePass to text returned of (display dialog "Password" default answer "")

considering case --respect de la casse
if thePass = pass then --si le mot de passe est bon
display dialog "OK"
--on procède à la duplication
tell application "Finder"
duplicate entire contents of folder (D1 as alias) to (D4 as alias) replacing yes
end tell

else --sinon
--message d'erreur
beep
display dialog "Password invalide"
end if
end considering
end run





Voilà merci à vous pour votre aide !
 
Bonjour,

j'avais fait un script grâce à vous :zen: sur le forum qui marchait très bien sur Tiger.

Mais voilà avec leopard installé j'ai droit à ce message :

"il est impossible de rendre alias "Exemple:Raccourci Contents" en type "class cfol"

Bonjour

J'ai pas installé Léopard, donc je peut pas tester.

Essais de transformer tes chemins en as unicode text

Applescript a été sans doutes modernisé.

@+
 
Essais de transformer tes chemins en as unicode text

Applescript a été sans doutes modernisé.

@+

Merci beaucoup mais je n'ai aucune conaissance la dedans. Comment je doit faire ça ?

Par exemple sur le script que j'ai laissé qu'est ce qui change ?

Merci
 
Merci beaucoup mais je n'ai aucune conaissance la dedans. Comment je doit faire ça ?

Par exemple sur le script que j'ai laissé qu'est ce qui change ?

Merci

J'ai testé ton script modifié avec Tiger et il fonctionne

Je vien d'installer Leopard et tester le script modifié et il fonctionne.

En gras mes modifications.
Bloc de code:
--on obtient le chemin vers le dossier "Applications" quel que soit le nom du disque
property pathToAppFolder : (path to applications folder) as string

--on ajoute le nom du dossier pour avoir le chemin complet
property D1 : (pathToAppFolder & "Exemple:Contenu:") [B]as Unicode text[/B]
property D4 : (pathToAppFolder & "Exemple:Raccourci Contents:") [B]as Unicode text[/B]
property pass : "1234"

on run
set thePass to text returned of (display dialog "Password" default answer "" [B]with hidden answer[/B])
	
	considering case --respect de la casse
		if thePass = pass then --si le mot de passe est bon
			display dialog "OK"
			--on procède à la duplication
			tell application "Finder"
				duplicate entire contents of folder [B](D1)[/B] to [B](D4)[/B] replacing yes
			end tell
			
		else --sinon
			--message d'erreur
			beep
			display dialog "Password invalide"
		end if
	end considering
end run

with hidden answer Pour ne pas voir le mot de passe que tu écrit devant une autre personne.

J'ai l'impression qu Unicode text va être obligatoire sous Leopard.
L'éditeur de scripts a été amélioré.

@+
 
Merci beaucoup je teste cela demain et je te tiens au courant.
 
Bon effectivement ca marche mieux !!! Merci :zen:


Par contre j'en ai un autre ou j'envoi directement un dossier dans l'appli et là j'ai un message du type :

Erreur dans Finder*: Il est impossible de rendre alias "Macintosh HD:Applications:Test:Exemple.app:" en type folder.

car en effet jusque là je copiais les fichiers dans "Contents":

dossier ---dans---> ("Macintosh HD:Applications:Test:Exemple.app:Contents:") as Unicode text et ça fonctionnait

MAIS AVEC

dossier ---dans---> ("Macintosh HD:Applications:Test:Exemple.app:") as Unicode text ça marche pas et le message apparaît.


Que dois je changer ?

Merci @+
 
Bon effectivement ca marche mieux !!! Merci :zen:


Par contre j'en ai un autre ou j'envoi directement un dossier dans l'appli et là j'ai un message du type :

Erreur dans Finder*: Il est impossible de rendre alias "Macintosh HD:Applications:Test:Exemple.app:" en type folder.

car en effet jusque là je copiais les fichiers dans "Contents":

dossier ---dans---> ("Macintosh HD:Applications:Test:Exemple.app:Contents:") as Unicode text et ça fonctionnait

MAIS AVEC

dossier ---dans---> ("Macintosh HD:Applications:Test:Exemple.app:") as Unicode text ça marche pas et le message apparaît.


Que dois je changer ?

Merci @+
Bonsoir

dossier ---dans---> ("Macintosh HD:Applications:Test:Exemple.app:") as Unicode text ça marche pas et le message

c'est pas un dossier mais un bundle (une application donc c'est normal) pour le finder c'est un fichier (en réalité c'est un dossier)

Si un .app c'est pas un dossier puisque un dossier n'a pas d'extension

Il faut alors donner un nom de sous-dossier dans le chemin de l'application pour y copier un élément (fichier ou dossier)

@+
 
Donc si j'ai bien compris :

- copier dans "Test.app:Contents:" = Possible
- copier dans "Test.app:" = Pas Possible

Sous tiger j'avais créé un alias de l'application (donc du bundle) et je copiais le dossier directement sur celui-ci et ça marchait.

Sous leopard ça marche pas.

Y a vraiment aucune solution ? Qu'est ce qui fait que sous Leo ça bloque ?

Merci @+
 
Donc si j'ai bien compris :

- copier dans "Test.app:Contents:" = Possible
- copier dans "Test.app:" = Pas Possible

Sous tiger j'avais créé un alias de l'application (donc du bundle) et je copiais le dossier directement sur celui-ci et ça marchait.

Sous leopard ça marche pas.

Y a vraiment aucune solution ? Qu'est ce qui fait que sous Leo ça bloque ?

Merci @+

Passe en mode terminal, il ne fait aucune différence entre dossier et fichier et essais pour voir si ça marche.

Si tu as posé ta question c'est qu'AppleScript à été modifié pour corriger cette anomalie.

On ne peut déplacer un élément que dans un dossier, un bundle n'est pas considéré comme un dossier mais un sous-dossier dans ce bundle est lui considéré comme un dossier puisque c'est un vrais dossier.

Si tu regarde bien dans un bundle son contenue est toujours le dossier Contents.

Pour faire simple, dans une passoire tu met de l'eau tu as plus rien, place un verre dans cette dernière et met de l'eau dans celui-ci et tu as de l'eau.

Tout ça pour te dire qu'une commande qui pour moi est anormale je n'ai aucune réponse.

Salut
 
Merci beaucoup j'ai bien compris l'image de la passoire ! :)

Pour le terminal je ne sais pas faire désolé.

Donc il n'y a aucune solution. Dommage

A plus
 
En fait, dans le bundle de l'appli il y a :

- Contents
- Required

et moi ce que je veux c'est remplacer ce dossier Required car déplacer les fichiers dans celui-ci ne fonctionne pas.

dans tiger il suffisait d'envoyer le dossier sur le .app et il trouvait tout seul et remplacer le Required par le mien.

Là sous Leo, comme tu dis, ça passe à travers !


????