20 votes

Vérifiez si une chaîne est un nom de fichier valide avec Qt

Y a-t-il un moyen avec Qt 4.6 de vérifier si un QString donné est un nom de fichier valide (ou de répertoire) sur le système d'exploitation actuel ? Je veux vérifier que le nom est valide, pas que le fichier existe.

Exemples :

// Certains noms valides
test
under_score
.dotted-name

// Certains noms spécifiques
colon:name // valide sous les systèmes UNIX, mais pas sur Windows
what? // valide sous les systèmes UNIX, mais toujours pas sur Windows

Comment puis-je réaliser cela ? Y a-t-il une fonction intégrée de Qt pour cela ?

J'aimerais éviter de créer un fichier vide, mais s'il n'y a pas d'autre moyen fiable, j'aimerais quand même savoir comment le faire de manière "propre".

Merci beaucoup.

0voto

JimDaniel Points 4853

Je créerais simplement une fonction simple pour valider le nom de fichier pour la plate-forme, qui recherche simplement à travers la chaîne tous les caractères invalides. Je ne pense pas qu'il y ait de fonction intégrée dans Qt. Vous pourriez utiliser des #ifdef à l'intérieur de la fonction pour déterminer sur quelle plate-forme vous êtes. Assez propre, je dirais.

0voto

Alex_L Points 1
QFile::rename(fullOldName, fullNewName) 

retourne false si fullNewName n'est pas valide (caractères non résolus ou nom de fichier déjà existant). Nous pouvons donc vérifier si fullNewName est valide sans code excessif

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X