ï¾ï€¢ï€«sal...ie de warning !
Je ne trouve pas comment supprimer ce warning !
Dans un fichier de définition (.h) j'ai écrit:
#define garder @~/Library/Application Support/whatari
Puis dans le xx.m j'ai écris:
tempor = garder.stringByExpandingTildeInPath ;
Et je crée le dossier whatari
[[NSFileManager defaultManager] createDirectoryAtPath:tempor withInte.........etc
Là pas de warning mais le dossier est créé à l'adresse
/users/tablier/Library/Application\ Support/whatari
Donc, à coté de "Application support" un dossier "Application\ Support" a été créé. Ce n'est ce que je veux.
Je modifie la définition initiale en:
#define garder @~/Library/Application\ Support/whatari
Là , le dossier whatari est bien créé dans "Application Support" mais j'ai un warning et je ne vois pas comment l'enlevé:
tempor = garder.stringByExpandingTildeInPath ; Unknown escape sequence '\ '
Réponses
Le slash à l'envers peut-être ?
Il en faut peut-être deux, car le premier annule le caractère suivant ?
Non ?
J'aurais tendance aussi à utiliser NSApplicationSupportDirectory.
La première approche semble correcte pourtant. Les deux dossiers sont-ils visible depuis le Finder ?
Pour la seconde approche je dirais qu'au final cela revient au même: le compilateur ne connait pas la séquence "\ " du coup il laisse uniquement l'espace.
les deux dossiers sont normalement invisibles. C'est l'Application Support du user que je cherche. Les librairies des users sont invisibles depuis 10.9 (peut-être). Je vais essayé ce que préconise Larme.
Comment as tu obtenu le chemin problématique ("/users/tablier/Library/Application\ Support/whatari") depuis le terminal ou autre ?
Le chemin est facile à obtenir.
1 j'utilise "Invisibility Toggler" et tout ce qui est caché devient visible.
2 je pose sur la fenêtre du terminal ce dont je veux récupérer le chemin.
3 copier / coller
Et le tour est joué !
Ici, comme les utilisateurs ne sont pas moi, j'ai remplacé "/users/tablier" par "~" dans le programme bien sur.
Dans ce cas si tu colles le chemin dans le terminal il est tout à fait normal qu'un "\ " apparaisse. Lorsqu'un chemin contient un espace est utilisé dans un terminal il est tout simplement échappé sinon le terminal interpréterai cela comme séparateur d'arguments.
Pour avoir le bon chemin utilise plutôt TextEdit en mode texte ou un autre éditeur de texte (SublimeText par ex).
PS: Tu peux accéder au dossier Library depuis le finder avec le menu "Aller à " en maintenant la touche option appuyé.
Lexxis: ce n'est pas le \ ajouter par le terminal qui me gène. Ce qui me gène, c'est que si le \ n'est pas présent dans ma définition, la méthode StringByExpendingTildeInPath ajoute le \ entre Application et Support et le résultat est faux, mais il n'y a pas de warning. Et si le \ est présent dans la définition le résultat est bon mais le compilateur renvoie un warning ! En gros, la méthode enlève le \ quand il existe et l'ajoute s'il n'est pas là ! Pour résumé:
define garder @~/Library/Application Support/whatari Méthode-> /users/tablier/Library/Application\ Support/whatari
define garder @~/Library/Application\ Support/whatari Méthode-> /users/tablier/Library/Application Support/whatari + Warning
Oui, j'ai bien compris quel était le problème. En fait ce que je soulignais dans mes posts précédent c'est que, a priori, une fois compilé, que tu ajoutes un "\ " ou non la chaine finale qui sera passée à StringByExpendingTildeInPath sera "~/Library/Application Support/whatari" quoi qu'il arrive (un NSLog de la chaine suffit pour le vérifier) et donc que le problème se situe peut être ailleurs.
Quoi qu'il en soit il est plus sur d'utiliser NSApplicationSupportDirectory pour obtenir le précieux dossier.