Ir para conteúdo
Fórum Script Brasil
  • 0

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


serginho450

Pergunta

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 para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...