locked
Como usar o OpenFileDialog e SaveFileDialog? RRS feed

  • Pergunta

  • Olá! Preciso usar o OpenFileDialog no lugar de um caminho, como posso fazer isto? No lugar de "C:\Users\Free4k\Mails\e-mail (1).txt" quero usar um OpenFileDialog, e depois um SaveFileDialog para salvar o arquivo de texto do ListView. Procurei na internet, porém não encontrei. Obrigado!

     Veja o código do meu programa:

         Dim str As New StreamReader("C:\Users\Free4k\Desktop\Mails\e-mail (1).txt")
            If (Not IsNothing(str)) Then
                Dim LinhaTxt As String = ""
                While (str.Peek() > -1)
                    LinhaTxt = str.ReadLine()
                    Dim Item = ListViewEmails.Items.Add(LinhaTxt)
                    'Item.SubItems(LinhaTxt)
                End While
                If (ListViewEmails.Items.Count > 0) Then
                    ListViewEmails.Items(0).Selected = True
                End If
            End If




    • Editado Free4k quinta-feira, 19 de fevereiro de 2015 11:04
    sábado, 9 de novembro de 2013 17:33

Respostas

  • Ueh!:

    Eu já vi essa dúvida ???

    Exemplos:

    Private Sub ButSalvar_Click(sender As Object, e As EventArgs) Handles ButSalvar.Click
            If (DialogResult.OK = SaveFileDialog1.ShowDialog() _
                And Not String.IsNullOrEmpty(SaveFileDialog1.FileName) _
                And ListViewEmails.Items.Count > 0) Then
                Dim FileName As String = SaveFileDialog1.FileName
                Dim Str As New StreamWriter(FileName, True)
                For Each item As ListViewItem In ListViewEmails.Items
                    Str.WriteLine(item.Text)
                Next
                Str.Flush()
                Str.Dispose()
                MessageBox.Show("Itens gravado com sucesso", "Gravação de Texto", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Cancelado ...", "Gravação de Texto", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            End If
    
            
        End Sub
    
        Private Sub ButAbrir_Click(sender As Object, e As EventArgs) Handles ButAbrir.Click
            If (DialogResult.OK = OpenFileDialog1.ShowDialog() _
                And Not String.IsNullOrEmpty(OpenFileDialog1.FileName) _
                And File.Exists(OpenFileDialog1.FileName)) Then
                ListViewEmails.Items.Clear()
                ListViewEmails.MultiSelect = False
                ListViewEmails.FullRowSelect = True
                '//
                Dim str As New StreamReader(OpenFileDialog1.FileName)
                If (Not IsNothing(str)) Then
                    Dim LinhaTxt As String = ""
                    While (str.Peek() > -1)
                        LinhaTxt = str.ReadLine()
                        Dim Item = ListViewEmails.Items.Add(LinhaTxt)
                        'Item.SubItems(LinhaTxt)
                    End While
                    If (ListViewEmails.Items.Count > 0) Then
                        ListViewEmails.Items(0).Selected = True
                    End If
                End If
                MessageBox.Show("Itens carregado com sucesso", "Lendo de Texto", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Cancelado ...", "Lendo de Texto", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            End If
        End Sub
    Ta ai os dois exemplos!

    domingo, 10 de novembro de 2013 11:46

Todas as Respostas

  • Eu uso uma funções simples  para ler ou gravar novos ficheiros e pastas.

    O retorno destas funções é vazio("") caso seja cancelada a caixa de diálogo.

        Public Function GetFile() As String
            'Abrir ficheiro existente
            'Não pode escolher um ficheiro inexistente
            Dim Dlg As New OpenFileDialog
            Dlg.Filter = "Ficheiros de texto(*.txt)|*.txt|Todos os ficheiros(*.*)|*.*"
            Dlg.FilterIndex = 0
            Dlg.ShowDialog()
            Return Dlg.FileName
        End Function
    
    
        Public Function SaveFile() As String
            'Criar ficheiro.  
            'Pode eventualmente selecionar um ficheiro existente
            Dim Dlg As New SaveFileDialog
            Dlg.Filter = "Ficheiros de texto(*.txt)|*.txt"
            Dlg.FilterIndex = 0
            Dlg.ShowDialog()
            Return Dlg.FileName
        End Function
    
    
        Public Function GetFolder() As String
            'Obter pasta com a possibilidade de criar nova
            Dim Dlg As New FolderBrowserDialog
            Dlg.ShowDialog()
            Return Dlg.SelectedPath
        End Function
    


    sábado, 9 de novembro de 2013 23:09
  • Como faço para usar essa função no ListView?
    domingo, 10 de novembro de 2013 01:44
  • É só substituir as duas primeiras instruções da tua rotina:

            Dim fs As String = GetFile() 'nome do arquivo a abrir
            If fs <> "" Then
                Dim str As New StreamReader(fs) 'abrir o arquivo para leitura
    
                Dim LinhaTxt As String = ""
                While (str.Peek() > -1)
                    LinhaTxt = str.ReadLine()
                    Dim Item = ListViewEmails.Items.Add(LinhaTxt)
                    'Item.SubItems(LinhaTxt)
                End While
                If (ListViewEmails.Items.Count > 0) Then
                    ListViewEmails.Items(0).Selected = True
                End If
    
                str.Close() 'terminar a leitura do arquivo
            End If
    

    domingo, 10 de novembro de 2013 07:46
  • Ueh!:

    Eu já vi essa dúvida ???

    Exemplos:

    Private Sub ButSalvar_Click(sender As Object, e As EventArgs) Handles ButSalvar.Click
            If (DialogResult.OK = SaveFileDialog1.ShowDialog() _
                And Not String.IsNullOrEmpty(SaveFileDialog1.FileName) _
                And ListViewEmails.Items.Count > 0) Then
                Dim FileName As String = SaveFileDialog1.FileName
                Dim Str As New StreamWriter(FileName, True)
                For Each item As ListViewItem In ListViewEmails.Items
                    Str.WriteLine(item.Text)
                Next
                Str.Flush()
                Str.Dispose()
                MessageBox.Show("Itens gravado com sucesso", "Gravação de Texto", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Cancelado ...", "Gravação de Texto", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            End If
    
            
        End Sub
    
        Private Sub ButAbrir_Click(sender As Object, e As EventArgs) Handles ButAbrir.Click
            If (DialogResult.OK = OpenFileDialog1.ShowDialog() _
                And Not String.IsNullOrEmpty(OpenFileDialog1.FileName) _
                And File.Exists(OpenFileDialog1.FileName)) Then
                ListViewEmails.Items.Clear()
                ListViewEmails.MultiSelect = False
                ListViewEmails.FullRowSelect = True
                '//
                Dim str As New StreamReader(OpenFileDialog1.FileName)
                If (Not IsNothing(str)) Then
                    Dim LinhaTxt As String = ""
                    While (str.Peek() > -1)
                        LinhaTxt = str.ReadLine()
                        Dim Item = ListViewEmails.Items.Add(LinhaTxt)
                        'Item.SubItems(LinhaTxt)
                    End While
                    If (ListViewEmails.Items.Count > 0) Then
                        ListViewEmails.Items(0).Selected = True
                    End If
                End If
                MessageBox.Show("Itens carregado com sucesso", "Lendo de Texto", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Cancelado ...", "Lendo de Texto", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            End If
        End Sub
    Ta ai os dois exemplos!

    domingo, 10 de novembro de 2013 11:46
  • Obrigado! Você já tinha me respondido, esta pergunta fiz antes, porém ninguém tinha respondido. Então fiz a outra. Obrigado novamente.
    domingo, 10 de novembro de 2013 13:40