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



## LACK (28 Octobre 2007)

Bonjour,

 j'avais fait un script grâce à vous   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 !


----------



## ceslinstinct (31 Octobre 2007)

LACK a dit:


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



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é.

@+


----------



## LACK (31 Octobre 2007)

ceslinstinct a dit:


> 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


----------



## ceslinstinct (31 Octobre 2007)

LACK a dit:


> Merci beaucoup mais je n'ai aucune conaissance la dedans. Comment je doit faire &#231;a ?
> 
> Par exemple sur le script que j'ai laiss&#233; qu'est ce qui change ?
> 
> Merci



J'ai test&#233; ton script modifi&#233; avec Tiger et il fonctionne

Je vien d'installer Leopard et tester le script modifi&#233; et il fonctionne.

En gras mes modifications.

```
--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&#232;de &#224; 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 &#233;crit devant une autre personne.

J'ai l'impression qu Unicode text va &#234;tre obligatoire sous Leopard.
L'&#233;diteur de scripts a &#233;t&#233; am&#233;lior&#233;.

@+


----------



## LACK (1 Novembre 2007)

Merci beaucoup je teste cela demain et je te tiens au courant.


----------



## LACK (1 Novembre 2007)

Bon effectivement ca marche mieux !!! Merci  


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 @+


----------



## ceslinstinct (1 Novembre 2007)

LACK a dit:


> Bon effectivement ca marche mieux !!! Merci
> 
> 
> Par contre j'en ai un autre ou j'envoi directement un dossier dans l'appli et l&#224; j'ai un message du type :
> ...


Bonsoir

dossier ---dans---> ("Macintosh HD:Applications:Test:Exemple.app:") as Unicode text &#231;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&#233;alit&#233; 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 &#233;l&#233;ment (fichier ou dossier)

@+


----------



## LACK (2 Novembre 2007)

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 @+


----------



## ceslinstinct (2 Novembre 2007)

LACK a dit:


> Donc si j'ai bien compris :
> 
> - copier dans         "Test.app:Contents:"   = Possible
> - copier dans         "Test.app:"               = Pas Possible
> ...



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


----------



## LACK (4 Novembre 2007)

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


----------



## LACK (4 Novembre 2007)

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 !


????


----------



## françois SOLLER (5 Novembre 2007)

Bonjour à tous
Comment implémenter , une page de tableur , avec Xcode ?
Merci


----------

