[Rà‰SOLU]Gestion des extensions de fichier
epetit91
Membre
Bonsoir,
Je rencontre une petite difficulté et je souhaite avoir votre avis sur la question.
Par le code suivant, je crée un fichier avec l'extension "tbladata".
Lorsque le panel me demande le nom du fichier et que je clique sur "Masquer l'extension" en bas à gauche du panel, l'extension apparait ou pas dans le champs de saisie du nom de fichier en fonction de l'état de la case à cocher correspondante. Jusque là , tout fonctionne parfaitement.
En revanche, si je décide de masquer l'extension (case "Masque l'extension" cochée) et que je valide en cliquant sur "Enregistrer", le fichier est bien créé là où je le souhaite et avec le nom que j'ai saisi mais l'extension apparaà®t à la suite du nom du fichier bien que j'ai souhaité qu'elle soit masquée.
Où est l'erreur ?
Aurais-je oublié quelque chose dans mon code ?
Merci pour votre aide.
Je rencontre une petite difficulté et je souhaite avoir votre avis sur la question.
Par le code suivant, je crée un fichier avec l'extension "tbladata".
Lorsque le panel me demande le nom du fichier et que je clique sur "Masquer l'extension" en bas à gauche du panel, l'extension apparait ou pas dans le champs de saisie du nom de fichier en fonction de l'état de la case à cocher correspondante. Jusque là , tout fonctionne parfaitement.
En revanche, si je décide de masquer l'extension (case "Masque l'extension" cochée) et que je valide en cliquant sur "Enregistrer", le fichier est bien créé là où je le souhaite et avec le nom que j'ai saisi mais l'extension apparaà®t à la suite du nom du fichier bien que j'ai souhaité qu'elle soit masquée.
Où est l'erreur ?
Aurais-je oublié quelque chose dans mon code ?
Merci pour votre aide.
<br />
NSSavePanel *panel;<br />
NSInteger reponse;<br />
DonneesStruct donnees;<br />
<br />
donnees.champs1 = 0;<br />
donnees.champs2 = 0;<br />
donnees.champs3 = 0;<br />
donnees.champs4 = 0;<br />
<br />
// Ouvre un dialogue de création d'un fichier (extension ".tbladata")<br />
panel = [NSSavePanel savePanel];<br />
[panel setRequiredFileType:@"tbladata"];<br />
[panel setCanSelectHiddenExtension:TRUE];<br />
reponse = [panel runModal];<br />
<br />
// Si la sélection est validée : création du fichier et initialisation de l'entête<br />
if (NSOKButton == reponse)<br />
[[NSData dataWithBytes:&donnees length:sizeof(donnees)] writeToFile:[[panel filename] stringByExpandingTildeInPath] atomically:YES];<br />
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Malheureusement, j'obtiens le même résultat qu'avec mon code à savoir l'extension du fichier n'est pas masquée.
De plus, avec ton code, si je passe /color][color=#000000]savePanel setExtensionHidden[/color][color=#666600]:[/color][color=#000000]YES[/color][color=#666600, la case à cocher permettant de sélectionner de masquer ou pas l'extension n'apparait pas.
Mon problème reste donc entier.
Merci quand même.
avec NSFileExtensionHidden pour cacher l'extension. Cela correspondrait-il à ce que tu veux faire ?
- setExtensionHidden:
Je ne les ai pas essayé.
Pour cacher les extensions dans le sélecteur de fichier, cela se fait dans les paramètres de l"OpenPanel" ou du "savePanel":
setExtensionHidden:(YES or NO)
Pour cacher l'extension d'un fichier dans le finder, cela se fait en changeant l'attribut NSFileExtensionHidden avec le FileManager:
setAttributes:(dictionnaire des attributs) ofItemAtPath:(chemin du fichier) error:NULL
Merci à tous pour votre aide.