How to pass a txt file to a Stream parameter?

2

How to pass a txt file to a Stream parameter?

This is the ActionResult that calls the method to read the file txt :

[HttpPost]
public ActionResult Incluir(ContaReceberViewModel pContaReceber,
                            HttpPostedFileBase fileRetorno)
{
    try
    {
        var fileName = Path.GetFileName(fileRetorno.FileName);
        var _arquivo = Path
           .Combine(Server.MapPath("~/Content/Uploads/Importacao"),
                   fileName); 
        ArquivoRetornoCNAB400 cnab400 = new ArquivoRetornoCNAB400();
        //O erro ocorre aqui, quando tento passar o parâmetro:                
        cnab400.LerArquivoRetorno(bco, new FileStream(_arquivo, FileAccess.Write));
        return View(new ContaReceber());
    }
    catch (Exception)
    {
        TempData["mensagemErro"] = 
          string.Format("Ocorreu um erro ao carregar 
                      tela de importação de arquivos bancários.");
        return View(new ContaReceber());
    }
}

This is the method that will read the txt file:

public override void LerArquivoRetorno(IBanco banco, Stream arquivo)
{
    try
    {
        StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8);
        string linha = "";

        // Lendo o arquivo
        linha = stream.ReadLine();

        // Próxima linha (DETALHE)
        linha = stream.ReadLine();

        while (DetalheRetorno.PrimeiroCaracter(linha) == "1")
        { 
            DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
            ListaDetalhe.Add(detalhe);
            OnLinhaLida(detalhe, linha);
            linha = stream.ReadLine();
        }

        stream.Close();
    }
    catch (Exception ex)
    {
        throw new Exception("Erro ao ler arquivo.", ex);
    }
}         

Error:

  

The best overloaded method match for 'System.IO.FileStream.FileStream(string, System.IO.FileMode)' has some invalid arguments C:\PROJETOS\SistemaBeta.Web\Controllers\ImportaArquivoConciliacaoController.cs 168

    
asked by anonymous 10.03.2016 / 20:44

1 answer

0

It worked using using :

using (var fileStream1 = new FileStream(_arquivo, FileMode.Open))
{
    cnab400.LerArquivoRetorno(bco, fileStream1);
}
    
10.03.2016 / 22:39