Wyrażenia regularne w C # do sprawdzania poprawności nazwy pliku

Jakie jest dobre wyrażenie regularne, które może zweryfikować ciąg tekstowy, aby upewnić się, że jest to prawidłowa nazwa pliku systemu Windows? (AKA nie ma\/:*?"<>| postacie).

Chciałbym to wykorzystać w następujący sposób:

<code>// Return true if string is invalid.
if (Regex.IsMatch(szFileName, "<your regex string>"))
{
    // Tell user to reformat their filename.
}
</code>

questionAnswers(4)

yourAnswerToTheQuestion