Bonjour à tous !
Je souhaite tester la possibilité d'écrire dans un répertoire avec Qt.
Pour connaître les droits en écriture sur un fichier existant c'est facile :
QFileInfo("PathFile").isWritable()
Mais si le fichier n'existe pas, ça ne fonctionne pas, il faut tester les droits en écriture dans le répertoire.
Or pour un répertoire je n'ai rien trouvé d'aussi simple.
Voici ce que j'ai trouvé et qui fonctionne :
1 2 3 4 5 6 7 8 9 10
| QDir d(s); // 's' est le path vers un fichier du répertoire à tester, disons '/home/sylvain/Documents/toto.txt'
d.cdUp(); // 'd' pointe maintenant sur '/home/sylvain/Documents/'
QStringList dirName;
dirName << d.dirName(); // 'Documents' est placé dans 'dirName'
d.cdUp(); // 'd' pointe maintenant sur '/home/sylvain/'
QFileInfoList l = d.entryInfoList(dirName); // 'l.at(0)' contient un QFileInfo sur '/home/sylvain/Documents/'
if (!l.at(0).isWritable()){ // Enfin, test des droits en écriture sur '/home/sylvain/Documents/'
erreur_ecriture = tr("Ce répertoire est protégé en écriture");
return false;
} |
C'est bien lourd...
Il y a un autre moyen ?
Partager