Jump to content
Fórum Script Brasil
  • 0

Ler pastas e enviar para um arquivo txt no Visual Basic 2010


serginho450
 Share

Question

Olá pessoal, acontece o seguinte. Estou criando um sistema automático que ao ser executado ele vai ler todas os diretórios que estão dentro de um diretório específico e depois vai criar uma pasta com o nome do computador local e criar dentro desta nova pasta um arquivo txt com a lista de nomes das pastas encontrada. Preciso que este sistema fique totalmente automatizado e estou tendo o seguinte problema. Se eu digitar todos os locais Funciona que é uma beleza. O arquivo txt é criado com os nomes das pastas linh por linha. veja o código:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Dir("C:\Computadores") = "" Then
            My.Computer.FileSystem.CreateDirectory("C:\Computadores")
            My.Computer.FileSystem.WriteAllText("C:\Computadores\FileList.txt", "PC", True)
        End If
        My.Computer.FileSystem.DeleteFile("C:\Computadores\FileList.txt")
        For Each foundFile As String In
        My.Computer.FileSystem.GetDirectories("C:\Projetos\")
            foundFile = foundFile & vbCrLf
            My.Computer.FileSystem.WriteAllText("C:\Computadores\FileList.txt", foundFile, True)
        Next

        Me.Close()
    End Sub

 

Mas se fizer o mesmo código pra funcionar com variáveis, o arquivo txt é criado escrito tudo em uma linha só. Veja o cógido:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Nome As String
        Dim Arq As String

        Nome = ("C:\Computadores\") + AxWinsock1.LocalHostName
        Arq = Nome + ("\FileList.txt")
        If Dir(Nome) = "" Then
            My.Computer.FileSystem.CreateDirectory(Nome)
            My.Computer.FileSystem.WriteAllText(Arq, AxWinsock1.LocalHostName, True)
        End If
        My.Computer.FileSystem.DeleteFile(Arq)
        For Each foundFile As String In
        My.Computer.FileSystem.GetDirectories("C:\Projetos\")
            My.Computer.FileSystem.WriteAllText(Arq, foundFile, True)
        Next

        Me.Close()
    End Sub

Como resolvo isso?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Não costumo usar esse método para escrever em arquivos (prefiro o StreamWriter), mas acho que você pode fazer o seguinte:

My.Computer.FileSystem.WriteAllText(Arq & vbCrLf, foundFile, True)

No caso, vbCrLf é a constante para o retorno de carro (Carriage Return) e a nova linha (Line Feed) que são os caracteres que representam um "Enter".

Veja aí se dá certo! Abraços!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...