none
Qual o diretório da pasta "Documentos"? RRS feed

  • Discussão Geral

  • Olá pessoal! É o seguinte: sempre que desenvolvo minhas aplicações que precisam salvar dados em um banco externo eu uso a pasta "C:\Users\Public", mas ela não está disponível em todas as versões do Windows. Eu poderia salvar em "C:\" ou "C:\Program Files", porém para isso o programa precisaria iniciar em modo de administrador. Então pensei em usar a pasta Documentos, vários programas que tenho salvam seus dados nesta pasta, o problema é que cada usuário tem o caminho da pasta diferente. Eu preciso descobrir um caminho para esta pasta, que seja universal, para todos os usuários, e todas as versões do Windows. Quem pode me ajudar? Obrigado.
    • Tipo Alterado Giovani Cr terça-feira, 28 de janeiro de 2014 11:30
    sábado, 18 de janeiro de 2014 22:46

Todas as Respostas

  • Olá

    A melhor pasta que você pode utilizar é a pasta de dados do utilizador (igual em qualquer versão do windows).

    Usa a seguinte variável para aceder dentro de seu programa.

    Environment.SpecialFolder.LocalApplicationData

    Se quiser utilizar a pasta de documentos:

    Path.Combine(Environment.ExpandEnvironmentVariables("%userprofile%"), "Documents")




    João Sousa (MCTS) Senior Software Engineer


    sábado, 18 de janeiro de 2014 22:58
  • E como faço para salvar um arquivo de texto nessas pastas? Obrigado!
    sábado, 18 de janeiro de 2014 23:17
  • Imports System
    Imports System.IO
    Imports System.Text
    Imports System.Collections.Generic
    
    Class Program
    
        Public Shared Sub Main(ByVal args As String())
            Dim mydocpath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Dim sb As New StringBuilder()
    
            For Each txtName As String In Directory.EnumerateFiles(mydocpath, "*.txt")
                Using sr As New StreamReader(txtName)
                    sb.AppendLine(txtName.ToString())
                    sb.AppendLine("= = = = = =")
                    sb.Append(sr.ReadToEnd())
                    sb.AppendLine()
                    sb.AppendLine()
                End Using 
            Next 
    
            Using outfile As New StreamWriter(mydocpath & "\AllTxtFiles.txt")
                outfile.Write(sb.ToString())
            End Using 
        End Sub 
    End Class


    João Sousa (MCTS) Senior Software Engineer

    sábado, 18 de janeiro de 2014 23:51
  • Este código funciona no meu caso? É um banco de dados INI. Eu uso estes códigos abaixo para leitura e gravação:

    Label1.Text = lerINI("C:\Users\Howar\Documentos\arquivo.ini", "Settings", "inicialização")
    
    escreveINI("C:\Users\Hawar\Documentos\arquivo.ini", "Settings", "inicialização", "Texto")

    Como faço para inserir o código? Obrigado.


    • Editado Free4k domingo, 19 de janeiro de 2014 00:02
    domingo, 19 de janeiro de 2014 00:01
  • Imports System
    Imports System.IO
    Imports System.Text
    Imports System.Collections.Generic
    
    Class Program
    
        Public Shared Sub Main(ByVal args As String())
            Dim mydocpath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Dim sb As New StringBuilder()
    
                Using sr As New StreamReader(lerINI(mydocpath& "\arquivo.ini")))
                    sb.Append(sr.ReadToEnd())
                    sb.AppendLine()
                    sb.AppendLine()
                End Using 
            
            Using outfile As New StreamWriter(mydocpath & "\arquivo.ini")
                outfile.Write(sb.ToString())
            End Using 
        End Sub 
    End Class


    João Sousa (MCTS) Senior Software Engineer

    domingo, 19 de janeiro de 2014 00:10
  • Seria assim?

    Imports System
    Imports System.IO
    Imports System.Text
    Imports System.Collections.Generic
    
    Class Program
    
        Public Shared Sub Main(ByVal args As String())
            Dim mydocpath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Dim sb As New StringBuilder()
    
                Using sr As New StreamReader(lerINI(mydocpath& "\arquivo.ini", "Settings", "inicialização")))
                    sb.Append(sr.ReadToEnd())
                    sb.AppendLine()
                    sb.AppendLine()
                End Using 
            
            Using outfile As New StreamWriter(mydocpath & "\arquivo.ini", "Settings", "inicialização")
                outfile.Write(sb.ToString())
            End Using 
        End Sub 
    End Class

    E como fazer para gravar? Obrigado mesmo!


    • Editado Free4k domingo, 19 de janeiro de 2014 00:20
    domingo, 19 de janeiro de 2014 00:18
  • É assim mesmo.

    Para gravar você já está gravando utilizando o código:

     Using outfile As New StreamWriter(mydocpath & "\arquivo.ini", "Settings", "inicialização")
                outfile.Write(sb.ToString())
            End Using 


    João Sousa (MCTS) Senior Software Engineer

    domingo, 19 de janeiro de 2014 00:50
  • Olá! Deu dois erros, como faço para conserta-los?

    domingo, 19 de janeiro de 2014 01:04
  • 1º Removaum dos parenteses finais

    2º coloca apenas 

    Using outfile As New StreamWriter(mydocpath & "\arquivo.ini")
                outfile.Write(sb.ToString())

    João Sousa (MCTS) Senior Software Engineer

    domingo, 19 de janeiro de 2014 01:22
  • Olá! Um dos erros desapareceu, mas o outro continua e apareceu ainda outro.

    domingo, 19 de janeiro de 2014 02:07