Como abrir um StreamReader no modo ShareDenyWrite?

Como faço para abrir umStreamReader comFILE_SHARE_READ, FILE_SHARE_WRITE, FILE_SHARE_DELETE?

Mesma pergunta, ligeiramente expandida

Como faço para abrir umStreamReader para que eu possa ler um arquivo de texto codificado, com opções de compartilhamento para que outro processo possa ler o arquivo?

Como faço para abrir umStreamReader para que eu possa ler um arquivo de texto codificado, com opções de compartilhamento para que outro processo possa modificar o arquivo enquanto o estou lendo?

Como faço para abrir umStreamReader para que eu possa ler um arquivo de texto codificado, com opções de compartilhamento para que outro processo possa excluir o arquivo enquanto o estou lendo?

Mesma pergunta, um pouco mais expandida

Na biblioteca de classes do .NET Framework existe uma classe chamadaStreamReader. É a única classe projetada para ler"texto", e é por isso que ele desce da base abstrataTextReader classe. oTextReader/StreamReader permite especificar a codificação usada pelo arquivo que você está tentando abrir e pode decodificar o arquivo para você, retornandoStrings de texto.

Depois de abrir um arquivo com oStreamReader:

var sr = new StreamReader(path);

O arquivo está bloqueado, com outros processos incapazes demodificar ouexcluir o arquivo. O que eu preciso é o equivalente a umFileStream classe deFileShare enumeração:

Nenhum: Recusa o compartilhamento do arquivo atual. Qualquer solicitação para abrir o arquivo (por este processo ou outro processo) falhará até que o arquivo seja fechado.Ler": Permite a abertura subseqüente do arquivo para leitura. Se este sinalizador não for especificado, qualquer solicitação para abrir o arquivo para leitura (por este processo ou outro processo) falhará até que o arquivo seja fechado. No entanto, mesmo que esse sinalizador seja especificado , permissões adicionais ainda podem ser necessárias para acessar o arquivo.Escrever: Permite a abertura subsequente do arquivo para gravação. Se esse sinalizador não for especificado, qualquer solicitação para abrir o arquivo para gravação (por esse processo ou outro processo) falhará até que o arquivo seja fechado. No entanto, mesmo que esse sinalizador seja especificado, talvez ainda seja necessário ter permissões adicionais para acessar o arquivo.Ler escrever: Permite a abertura subsequente do arquivo para leitura ou gravação. Se esse sinalizador não for especificado, qualquer solicitação para abrir o arquivo para leitura ou gravação (por este processo ou outro processo) falhará até que o arquivo seja fechado. No entanto, mesmo que esse sinalizador seja especificado, talvez ainda seja necessário ter permissões adicionais para acessar o arquivo.Excluir: Permite a exclusão subseqüente de um arquivo.

Exceto que, por razões óbvias, não posso usarFileStream - tem que usar umStreamReader.

Como posso abrir umStreamReader comFileShare.ReadWrite | FileShare.Delete?

questionAnswers(2)

yourAnswerToTheQuestion