Escrevendo um arquivo com o nome de um dispositivo

Eu encontrei algo curioso. Eu tenho um descompilador que extrai informações de um arquivo binário. Estou extraindo uma série de objetos que preciso gravar separadamente no disco como arquivos binários. Esses objetos são modelos gráficos compilados em uma biblioteca. Os objetos têm nomes incorporados e eu preciso usar esse nome como o nome do arquiv

Estou usando

try {
            // Open file for reading . 
            using (var fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) {
                // Writes a block of bytes to this stream using data from a byte array. . 
                fileStream.Write(byteArray, 0, byteArray.Length);
                // close file stream . 
                fileStream.Close();
            }
            return true;
        }

        catch (Exception exception) {
            return false;
        }

Percebo que meu tratamento de exceções não é ótimo! No entanto, o problema apareceu quando um dos objetos a serem salvos tinha o nome COM2. Isso causou uma exceção:

FileStream não abrirá dispositivos Win32, como partições de disco e unidades de fit

Então, no meu exemplo, estou tentando escrever um arquivo chamado COM2.mdl e obter esse erro. Realmente não quero alterar esses nomes, pois eles são incorporados pelo desenvolvedo

Eu considerei testar os nomes em uma lista de dispositivos que podem causar o erro - mas eu realmente não sei o que essa lista pode ser e também significaria alterar o nome do arquivo que não quero fazer.

Então, minha pergunta: Existe uma maneira de escrever uma matriz de bytes como um arquivo binário que não seja com o FileStream que possa superar esse problem

Muito Obrigad

questionAnswers(2)

yourAnswerToTheQuestion