Verificação de nome de arquivo válido. Qual é a melhor maneira?

Veja assunto de postular para pergunta.

1) Lembro-me de ver uma opção muito legal em VB.NET usando LINQ para combinar usando "LIKE% '

2) Eu sei que expressões regulares funcionarão e eu suspeito que isso resultará no código mais curto e provavelmente não será muito difícil de ler para um teste tão simples.

Aqui está o que eu fiz. Aviso: Você vai odiar isso.

<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