none
Escrever em .txt usando vb.net RRS feed

  • Pergunta

  • Ola . No meu navegador para usar a função do histórico criei um .txt file no caminho : 

    C:\Users\Windows_Vista\AppData\Histórico.txt

    Na form3 (janela onde é exibido o histórico) tem uma listbox1

    Tou a usar este código:

    If System.IO.File.Exists("C:\Users\Windows_Vista\AppData\Histórico.txt") = True Then
                Dim escrever As StreamWriter
                Dim caminho As String = "C:\Users\Windows_Vista\AppData\Histórico.txt"
                escrever = File.AppendText(caminho)
                escrever.WriteLine(ComboBox1.Text)
                escrever.Flush()
                escrever.Close()
    
    
            ElseIf My.Computer.FileSystem.DirectoryExists("C:\Users\Windows_Vista\AppData\Histórico.txt") = False Then
                Dim LOL As DialogResult = MsgBox("Um ficheiro não foi encontrado. Pretende reparar ?", "Erro crítico", MessageBoxIcon.Error, MessageBoxButtons.OK)
                Dim escrever As StreamWriter
                Dim caminho As String = "C:\Users\Windows_Vista\AppData\Histórico.txt"
                If LOL = Windows.Forms.DialogResult.Yes Then escrever = File.CreateText(caminho)
            End If

    Ao abrir a form recebo o erro que o ficheiro .txt ja ta aberto noutro programa. Ja reiniciei o problema mantem

    Alguma sugestão ?


    O meu objetivo ______ criar um sistema operativo

    segunda-feira, 16 de abril de 2012 17:17

Respostas

  • veja vc não está fazendo dispose no file por isso da esse erro, faz assim

    string mydocpath = 
            	Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            StringBuilder sb = new StringBuilder();
    
            foreach (string txtName in Directory.EnumerateFiles(mydocpath,"*.txt"))
            {
                using (StreamReader sr = new StreamReader(txtName))
                {
                    sb.AppendLine(txtName.ToString());
                    sb.AppendLine("= = = = = =");
                    sb.Append(sr.ReadToEnd());
                    sb.AppendLine();
                    sb.AppendLine();
                }
    
            }
    
            using (StreamWriter outfile = 
            	new StreamWriter(mydocpath + @"\AllTxtFiles.txt"))
            {
                outfile.Write(sb.ToString());
            }


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    • Marcado como Resposta Harley Araujo quarta-feira, 18 de abril de 2012 13:24
    terça-feira, 17 de abril de 2012 12:11
    Moderador

Todas as Respostas

  • Teste isso:

    Dim vWriter As New StreamWriter(Caminho, True)
    
    vWriter.WriteLine(ComboBox1.Text)
    vWriter.Flush()
    vWriter.Close()


    Ninguém falou que seria fácil!

    segunda-feira, 16 de abril de 2012 18:26
  • O File que vc esta usando é o do System.IO? 

    Se sim você pode usar direto o AppendAllText sem ter de dar Flush ou Close no arquivo.

    File.AppendAllText(caminho,ComboBox1.Text + Environment.NewLine);

    segunda-feira, 16 de abril de 2012 19:06
  • veja vc não está fazendo dispose no file por isso da esse erro, faz assim

    string mydocpath = 
            	Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            StringBuilder sb = new StringBuilder();
    
            foreach (string txtName in Directory.EnumerateFiles(mydocpath,"*.txt"))
            {
                using (StreamReader sr = new StreamReader(txtName))
                {
                    sb.AppendLine(txtName.ToString());
                    sb.AppendLine("= = = = = =");
                    sb.Append(sr.ReadToEnd());
                    sb.AppendLine();
                    sb.AppendLine();
                }
    
            }
    
            using (StreamWriter outfile = 
            	new StreamWriter(mydocpath + @"\AllTxtFiles.txt"))
            {
                outfile.Write(sb.ToString());
            }


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    • Marcado como Resposta Harley Araujo quarta-feira, 18 de abril de 2012 13:24
    terça-feira, 17 de abril de 2012 12:11
    Moderador
  • Agradeço mas foi erro meu mesmo. Afinal esse código esta bem. dava erro era por outra coisa. ainda assim obrigado talvez sirva a mais alguem na comunidade

    O meu objetivo ______ criar um sistema operativo

    segunda-feira, 23 de abril de 2012 15:11