Droits d'écriture

Le
Lucas Levrel
[Cross-post fclc++ et fco.ms-windows.programmation, suivi à votre bon
plaisir !]

Bonjour,

Mon programme, écrit en C++, sauve des données dans un fichier spécifié
par l'utilisateur. Le choix se fait avec le sélecteur de fichier GTK, qui
retourne le nom de fichier dans une « C-string ». Puis je fais :
ofstream journal(filename);
journal<<session.str();
journal.close();

Quand je teste (sous XP) le programme, qui est dans le répertoire
Téléchargements, le dossier par défaut du sélecteur est Téléchargements,
et là, impossible de créer un fichier (aucun fichier n'est créé dans le
répertoire à l'issue des instructions ci-dessus). En revanche, ça marche
dans le répertoire Bureau (c'est-à-dire, l'exécutable est dans
Téléchargements et l'utilisateur « navigue » jusqu'au répertoire Bureau
dans le sélecteur).

Mes questions :

- Est-ce un problème de permissions ? Ça me paraît étrange qu'un
utilisateur ne puisse pas créer un fichier dans ce répertoire !

- Dans mon code, que rajouter comme tests pour traquer l'erreur ?

- Des idées de la cause du problème, si ce ne sont pas les permissions ?

Merci.

--
LL
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #24362321
Bonjour,

Le 30/03/2012 17:11, Lucas Levrel a écrit :
[Cross-post fclc++ et fco.ms-windows.programmation, suivi à votre bon
plaisir !]



Je laisse le crosspost car je ne sais pas quel sera le meilleur groupe
pour la suite.

[...]

Quand je teste (sous XP) le programme, qui est dans le répertoire
Téléchargements [...] impossible de créer un fichier [...]
En revanche, ça marche dans le répertoire Bureau

Mes questions :

- Est-ce un problème de permissions ? Ça me paraît étrange qu'un
utilisateur ne puisse pas créer un fichier dans ce répertoire !



Je ne sais pas.

- Dans mon code, que rajouter comme tests pour traquer l'erreur ?



Non plus.

- Des idées de la cause du problème, si ce ne sont pas les permissions ?



À tout hasard : la présence de deux caractères non ASCII dans le nom
« Téléchargements », et aucun dans le nom « Bureau » ? Je ne sais pas
si ça peut vraiment jouer, mais c'est une piste possible.
Yann Renard
Le #24364121
On 03/30/2012 06:19 PM, Olivier Miakinen wrote:
Bonjour,

Le 30/03/2012 17:11, Lucas Levrel a écrit :
[Cross-post fclc++ et fco.ms-windows.programmation, suivi à votre bon
plaisir !]



Je laisse le crosspost car je ne sais pas quel sera le meilleur groupe
pour la suite.

[...]

Quand je teste (sous XP) le programme, qui est dans le répertoire
Téléchargements [...] impossible de créer un fichier [...]
En revanche, ça marche dans le répertoire Bureau

Mes questions :

- Est-ce un problème de permissions ? Ça me paraît étrange qu'un
utilisateur ne puisse pas créer un fichier dans ce répertoire !



Je ne sais pas.

- Dans mon code, que rajouter comme tests pour traquer l'erreur ?



Non plus.

- Des idées de la cause du problème, si ce ne sont pas les permissions ?



À tout hasard : la présence de deux caractères non ASCII dans le nom
« Téléchargements », et aucun dans le nom « Bureau » ? Je ne sais pas
si ça peut vraiment jouer, mais c'est une piste possible.



C'est exact, GTK encore ses chaînes de caractères en UTF8

Yann
Lucas Levrel
Le #24364561
Le 31 mars 2012, Yann Renard a écrit :

On 03/30/2012 06:19 PM, Olivier Miakinen wrote:
À tout hasard : la présence de deux caractères non ASCII dans le nom
« Téléchargements », et aucun dans le nom « Bureau » ? Je ne sais pas
si ça peut vraiment jouer, mais c'est une piste possible.



C'est exact, GTK encore ses chaînes de caractères en UTF8



Merci. J'ai donc deux pistes à explorer :
- déterminer l'encodage utilisé par l'OS et convertir le nom de fichier
dans cet encodage ;
- utiliser la bibli gio pour ouvrir le fichier.

Je vais me pencher moi-même sur la seconde, mais si vous savez comment
aborder la première, je suis preneur !

--
LL
Laurent Georget - slrn
Le #24407911
On Sat, 31 Mar 2012 15:02:15 +0200, Lucas Levrel
Le 31 mars 2012, Yann Renard a écrit :

On 03/30/2012 06:19 PM, Olivier Miakinen wrote:
À tout hasard : la présence de deux caractères non ASCII dans le nom
« Téléchargements », et aucun dans le nom « Bureau » ? Je ne sais pas
si ça peut vraiment jouer, mais c'est une piste possible.



C'est exact, GTK encore ses chaînes de caractères en UTF8



Merci. J'ai donc deux pistes à explorer :
- déterminer l'encodage utilisé par l'OS et convertir le nom de fichier
dans cet encodage ;
- utiliser la bibli gio pour ouvrir le fichier.

Je vais me pencher moi-même sur la seconde, mais si vous savez comment
aborder la première, je suis preneur !




S'il s'agit de Windows (XP et supérieur en tout cas), c'est l'encodage
Latin-1 (aka ISO-8859-1) qui est utilisé (pour les PCs vendus en France
en tous cas ; je suppose qu'ils s'adaptent). Le monde Unix et ses
bibliothèques ont par contre majoritairement adopté l'UTF-8.
Lucas Levrel
Le #24425581
Le 16 avril 2012, Laurent Georget - slrn a écrit :

On Sat, 31 Mar 2012 15:02:15 +0200, Lucas Levrel
- déterminer l'encodage utilisé par l'OS et convertir le nom de fichier
dans cet encodage ;



S'il s'agit de Windows (XP et supérieur en tout cas), c'est l'encodage
Latin-1 (aka ISO-8859-1) qui est utilisé (pour les PCs vendus en France
en tous cas ; je suppose qu'ils s'adaptent). Le monde Unix et ses
bibliothèques ont par contre majoritairement adopté l'UTF-8.



Voilà. Ma question était donc de déterminer l'encodage de l'OS à
l'exécution. Ceci dit, pour mon problème particulier, j'ai suivi ma
deuxième piste (utiliser la bibliothèque GIO) et ça marche bien.
--
LL
Publicité
Suivre les réponses
Poster une réponse
Anonyme