Accueil > > > VÉRIFIER LA CONFORMITÉ DU NOM D'UN FICHIER
VÉRIFIER LA CONFORMITÉ DU NOM D'UN FICHIER
Information sur la source
Description
Lorsque vous voulez enregistrer un fichier et que le nom est issu d'une variable, par exemple comportant le nom d'une machine, il parait utile de vérifier que tous les caractères qui compose le nom soient autorisés par Windows, sinon, vous risquez d'avoir une erreur que peut-être vous n'avez pas géré.
Pour vérifie le nom d'un fichier, simplement :
Nom = ValideNomFichier(Nom)
Les caractères non autorisés seront remplacés par des traits d'union (par défaut) ou par tout autre caractère si vous utilisez la syntaxe :
Nom = ValideNomFichier(Nom, "@")
Pour l'utiliser, collez ce code dans un module, ou récupérez le module dans le Zip.
C'est tout
Source
- Public Function ValideNomFichier(ByVal sNomFichier As String, _
- Optional sRemplaceCaractèrePar As String = "-") As String
-
- ' Cette fonction renvoie un nom de fichier autorisé
- ' On remplace les mauvais caractères par sRemplaceCaractèrePar
- ' (valeur par défaut = signe moins '-')
- ' Les caractères autorisés sont :
- ' A-Z Lettre + Signe plus
- ' 0-9 Nombre , Virgule
- ' space Espace ; Point-virgule
- ' ' Apostrophe = Signe égal
- ' - Tiret @ Arobase
- ' ! Point d'exclamation [ ] Crochets
- ' # Dièse _ Tiret de soulignement
- ' $ Dollar { } Accolades
- ' % Pour cent ~ Tilde
- ' & Et commercial ` Accent
- ' ( ) Parenthèses . Point
- ' plus toutes les combinaisons valables des lettres avec accents
-
- ' !! Cette fonction ne fonctionne pas avec des chemins complets
- ' puisque le caractère back-slash '\' n'est pas autorisé
-
- Dim Temp As String, Car As String, r As Long
-
- ' Avant de commencer, on va vérifier que le caractère de remplacement est
- ' lui-même autorisé (ce serait trop bête)
- sRemplaceCaractèrePar = Left(sRemplaceCaractèrePar, 1) ' un seul caractère
- If Not (sRemplaceCaractèrePar Like "[A-Z]" Or _
- sRemplaceCaractèrePar Like "[a-z]" Or _
- sRemplaceCaractèrePar Like "[0-9]" Or _
- sRemplaceCaractèrePar Like "[ '!#$%&()+,;=@{}~`.]" Or _
- sRemplaceCaractèrePar Like "[-]" Or _
- sRemplaceCaractèrePar Like "[[]" Or _
- sRemplaceCaractèrePar Like "[]]" Or _
- sRemplaceCaractèrePar Like "[_]" Or _
- sRemplaceCaractèrePar Like "[àéèêïîôùû]") Then _
- sRemplaceCaractèrePar = "-" ' Si non autorisé, impose trait d'union
-
- Temp = sNomFichier
- ' Vérifie que chaque caractère est autorisé
- For r = 1 To Len(Temp)
- Car = Mid(Temp, r, 1)
- If Not (Car Like "[A-Z]" Or _
- Car Like "[a-z]" Or _
- Car Like "[0-9]" Or _
- Car Like "[ '!#$%&()+,;=@{}~`.]" Or _
- Car Like "[-]" Or _
- Car Like "[[]" Or _
- Car Like "[]]" Or _
- Car Like "[_]" Or _
- Car Like "[àéèêïîôùû]") Then _
- Mid(Temp, r, 1) = sRemplaceCaractèrePar
- Next r
-
- ' S'il y a eu plusieurs remplacements à la suite, on va se retrouver avec
- ' plusieurs signes '-' à la queue leuleu : pas joli : On n'en laisse qu'un.
- Do While InStr(1, Temp, sRemplaceCaractèrePar & sRemplaceCaractèrePar) <> 0
- Temp = Replace(Temp, sRemplaceCaractèrePar & sRemplaceCaractèrePar, sRemplaceCaractèrePar)
- DoEvents
- Loop
-
- ' Renvoie le nom modifié
- ValideNomFichier = Temp
-
- End Function
Public Function ValideNomFichier(ByVal sNomFichier As String, _
Optional sRemplaceCaractèrePar As String = "-") As String
' Cette fonction renvoie un nom de fichier autorisé
' On remplace les mauvais caractères par sRemplaceCaractèrePar
' (valeur par défaut = signe moins '-')
' Les caractères autorisés sont :
' A-Z Lettre + Signe plus
' 0-9 Nombre , Virgule
' space Espace ; Point-virgule
' ' Apostrophe = Signe égal
' - Tiret @ Arobase
' ! Point d'exclamation [ ] Crochets
' # Dièse _ Tiret de soulignement
' $ Dollar { } Accolades
' % Pour cent ~ Tilde
' & Et commercial ` Accent
' ( ) Parenthèses . Point
' plus toutes les combinaisons valables des lettres avec accents
' !! Cette fonction ne fonctionne pas avec des chemins complets
' puisque le caractère back-slash '\' n'est pas autorisé
Dim Temp As String, Car As String, r As Long
' Avant de commencer, on va vérifier que le caractère de remplacement est
' lui-même autorisé (ce serait trop bête)
sRemplaceCaractèrePar = Left(sRemplaceCaractèrePar, 1) ' un seul caractère
If Not (sRemplaceCaractèrePar Like "[A-Z]" Or _
sRemplaceCaractèrePar Like "[a-z]" Or _
sRemplaceCaractèrePar Like "[0-9]" Or _
sRemplaceCaractèrePar Like "[ '!#$%&()+,;=@{}~`.]" Or _
sRemplaceCaractèrePar Like "[-]" Or _
sRemplaceCaractèrePar Like "[[]" Or _
sRemplaceCaractèrePar Like "[]]" Or _
sRemplaceCaractèrePar Like "[_]" Or _
sRemplaceCaractèrePar Like "[àéèêïîôùû]") Then _
sRemplaceCaractèrePar = "-" ' Si non autorisé, impose trait d'union
Temp = sNomFichier
' Vérifie que chaque caractère est autorisé
For r = 1 To Len(Temp)
Car = Mid(Temp, r, 1)
If Not (Car Like "[A-Z]" Or _
Car Like "[a-z]" Or _
Car Like "[0-9]" Or _
Car Like "[ '!#$%&()+,;=@{}~`.]" Or _
Car Like "[-]" Or _
Car Like "[[]" Or _
Car Like "[]]" Or _
Car Like "[_]" Or _
Car Like "[àéèêïîôùû]") Then _
Mid(Temp, r, 1) = sRemplaceCaractèrePar
Next r
' S'il y a eu plusieurs remplacements à la suite, on va se retrouver avec
' plusieurs signes '-' à la queue leuleu : pas joli : On n'en laisse qu'un.
Do While InStr(1, Temp, sRemplaceCaractèrePar & sRemplaceCaractèrePar) <> 0
Temp = Replace(Temp, sRemplaceCaractèrePar & sRemplaceCaractèrePar, sRemplaceCaractèrePar)
DoEvents
Loop
' Renvoie le nom modifié
ValideNomFichier = Temp
End Function
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc [HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse au W3C, et l'avenir est très très prometteur pour le HTML5, notamment ...
Cliquez pour lire la suite de l'article par Gio GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc
Forum
RE : FONCTION EXCELRE : FONCTION EXCEL par bigfish_le vrai
Cliquez pour lire la suite par bigfish_le vrai RE : FONCTION EXCELRE : FONCTION EXCEL par bigfish_le vrai
Cliquez pour lire la suite par bigfish_le vrai FONCTION EXCELFONCTION EXCEL par samanta26
Cliquez pour lire la suite par samanta26
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|