Poprawny sprawdzanie nazwy pliku. Jaka jest najlepsza droga?

Zobacz temat zgłaszania pytań.

1) Pamiętam, że widziałem naprawdę fajną opcję w VB.NET używającą LINQ do dopasowania używając „LIKE%”

2) Wiem, że wyrażenia regularne będą działać i podejrzewam, że spowoduje to najkrótszy kod i prawdopodobnie nie będzie zbyt trudny do odczytania dla tak prostego testu.

Oto co zrobiłem. Ostrzeżenie: Nienawidzisz tego.

<code>Private Shared Function FileNameIsOk(ByVal fileName As String) As Boolean

    For Position As Integer = 0 To fileName.Length - 1

        Dim Character As String = fileName.Substring(Position, 1).ToUpper
        Dim AsciiCharacter As Integer = Asc(Character)

        Select Case True

            Case Character = "_" 'allow _
            Case Character = "." 'allow .
            Case AsciiCharacter >= Asc("A") And AsciiCharacter <= Asc("A") 'Allow alphas
            Case AsciiCharacter >= Asc("0") AndAlso AsciiCharacter <= Asc("9") 'allow digits

            Case Else 'otherwise, invalid character
                Return False

        End Select

    Next

    Return True

End Function
</code>

questionAnswers(11)

yourAnswerToTheQuestion