Savoir si le nom d'un fichier est valide (nom windows)

Contenu du snippet

Bonjour,

Ce n?est pas vraiment un codes-source, mais surtout une astuce ! Si vous demander le nom du fichier a sauvegardé à l?utilisateur de votre programme celui-ci peut ne pas être correcte. C'est-à-dire qu?il peut contenir un code non valide pour les noms windows.

En fait cette astuce est simple et test simplement si un caractère non valide est dans la chaine.

Source / Exemple :


' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************

' +--------------------------------------------------------------------------+
' |   DONNE LA VALIDITE DU NOM POUR LA SAUVEGARDE D'UN FICHIER METHODE N°1   |
' +--------------------------------------------------------------------------+

Private Function GetIsValidName(ByVal strFileName As String) As Boolean
' DECLARATION DES VARIABLES.
    Dim lngI        As Long

' DONNE LA VALIDITE DU NOM.
    lngI = lngI + InStr(&H1, strFileName, "\")              ' CARACTERE '\'.
    lngI = lngI + InStr(&H1, strFileName, "/")              ' CARACTERE '/'.
    lngI = lngI + InStr(&H1, strFileName, ":")              ' CARACTERE ':'.
    lngI = lngI + InStr(&H1, strFileName, "*")              ' CARACTERE '*'.
    lngI = lngI + InStr(&H1, strFileName, "?")              ' CARACTERE '?'.
    lngI = lngI + InStr(&H1, strFileName, "<")              ' CARACTERE '<'.
    lngI = lngI + InStr(&H1, strFileName, ">")              ' CARACTERE '>'.
    lngI = lngI + InStr(&H1, strFileName, "|")              ' CARACTERE '|'.
    lngI = lngI + InStr(&H1, strFileName, Chr$(&H22))       ' CARACTERE '"'.
    If lngI = &H0 Then
        GetIsValidName = True
        Else
            GetIsValidName = False
    End If

End Function

' +--------------------------------------------------------------------------+
' |   DONNE LA VALIDITE DU NOM POUR LA SAUVEGARDE D'UN FICHIER METHODE N°2   |
' +--------------------------------------------------------------------------+

Private Function GetIsValidName(ByVal strFileName As String) As Boolean
' DECLARATION DES VARIABLES.
    Dim lngI            As Long
    Const strInterdit   As String = "\/:*?""<>|"

' RECHERCHE DES CARACTERES INTERDIT.
    For lngI = 1 To Len(strInterdit)
        If InStr(strFileName, Mid$(strInterdit, lngI, &H1)) Then
            GetIsValidName = True
            Exit For
        End If
    Next lngI
    GetIsValidName = Not GetIsValidName

End Function

' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************

' +--------------------------------------------------------------------------+
' |          EXEMPLE D'UTILISATION DE LA FONCTION "setIsValidName".          |
' +--------------------------------------------------------------------------+

If Not GetIsValidName("TestFile*.exe") Then
    MsgBox ("NOM DU FICHIER INVALIDE")
End If

Conclusion :


Ceci n?est juste qu?une petite astuce, qui peut avoir son utilité en fonction de ce que vous faites.

Bonne programmation a tous,
[Gally Home Corp]

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.