Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/11/2012, 17h47   #1
olreak
Membre du Club
 
Inscription : mars 2011
Messages : 50
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 50
Points : 69
Points : 69
Par défaut Droits d'écriture d'un fichier

Bonjour,

Savez-vous comment créer un fichier avec Qt sous windows 7 de façon à ce que ce fichier ait les droits de modification/écriture pour tous les utilisateurs.

En utilisant simplement QFile::open(...) le fichier créé appartient à l'utilisateur qui a lancé l'application et le fichier a uniquement les droit de lecture et d'exécution pour les autres utilisateurs.

Typiquement il s'agit d'un fichier qui se trouve dans C:\ProgramData de façon à être accessible à tout le monde.


Merci
olreak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 15h10   #2
saad.hessane
Membre éprouvé
 
Avatar de saad.hessane
 
Homme Saâd Hessane
Ingénieur développement logiciels
Inscription : avril 2008
Messages : 299
Détails du profil
Informations personnelles :
Nom : Homme Saâd Hessane
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2008
Messages : 299
Points : 431
Points : 431
Je ne pense pas que tu puisses le faire directement à l'aide de Qt. QFileInfo permet de connaitre les droits sur un fichier, mais pas de les changer. C'est une fonctionnalité qui est dépendante du système.
Peut-être que la solution pour toi serait d'écrire dans un dossier où tous les utilisateurs ont accès ("C:\Users\Public\Documents")
Tu peux aussi créer ton propre dossier et lui attribuer des droits pour tous les utilisateurs avant de commencer à y écrire.
saad.hessane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 18h56   #3
Troudhyl
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 968
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2009
Messages : 968
Points : 1 695
Points : 1 695
Il suffit de jeter un œil à la documentation de QFile, pour y trouver un setPermissions()

Citation:
Envoyé par saad.hessane
C'est une fonctionnalité qui est dépendante du système.
Beaucoup de fonctionnalités sont dépendantes du système, mais le but de Qt est justement de fournir une surcouche commune pour qu'on ait un code source multi-plateforme. Qt a bien des implémentations différentes pour chaque système.
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/12/2012, 23h23   #4
saad.hessane
Membre éprouvé
 
Avatar de saad.hessane
 
Homme Saâd Hessane
Ingénieur développement logiciels
Inscription : avril 2008
Messages : 299
Détails du profil
Informations personnelles :
Nom : Homme Saâd Hessane
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2008
Messages : 299
Points : 431
Points : 431
Citation:
Envoyé par Troudhyl Voir le message
Il suffit de jeter un œil à la documentation de QFile, pour y trouver un setPermissions()


Beaucoup de fonctionnalités sont dépendantes du système, mais le but de Qt est justement de fournir une surcouche commune pour qu'on ait un code source multi-plateforme. Qt a bien des implémentations différentes pour chaque système.
Autant pour moi, je me disais que ça ne pouvait être que dans QFileInfo où je n'ai trouvé qu'une méthode permissions() sans setter. Merci !
saad.hessane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 09h24   #5
olreak
Membre du Club
 
Inscription : mars 2011
Messages : 50
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 50
Points : 69
Points : 69
Citation:
Envoyé par Troudhyl Voir le message
Il suffit de jeter un œil à la documentation de QFile, pour y trouver un setPermissions()
C'est la première chose que j'ai tentée, en mettant l'intégralité des droits, ça ne fonctionne pas, sous windows 7 en tout cas. Ça ne change même pas les droits de l'utilisateur courant.

Citation:
Envoyé par saad.hessane Voir le message
Peut-être que la solution pour toi serait d'écrire dans un dossier où tous les utilisateurs ont accès ("C:\Users\Public\Documents")
Tu peux aussi créer ton propre dossier et lui attribuer des droits pour tous les utilisateurs avant de commencer à y écrire.
C'est comme ça que j'ai fini par faire, le setup le l'application crée le répertoire avec toutes les autorisations pour l'utilisateur "Tout le monde". Je n'utilise pas le répertoire "Public" car il n'existe pas sous windows XP, j'utilise un sous-répertoire de commonAppData (Qt nous permet de récupérer facilement son emplacement selon le système)

Apparemment sous windows les répertoires et les fichiers héritent des droits des répertoires parents donc ça a résolu mon problème.

Merci
olreak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h00.


 
 
 
 
Partenaires

Hébergement Web