none
Encontrar ficheiros apenas com uma parte do seu nome RRS feed

  • Pergunta

  • Heey! Eu sou nova em Visual Basic e gostava de saber se existe alguma forma de através de uma TextBox em que o utilizador irá inserir uma parte do nome do ficheiro e listar as possibilidades numa ListBox.

    Estou a usar o seguinte código:

            Dim pasta As String = TextBox2.Text
            Dim folder As String = "C:\Users\Utilizador\Desktop\"
            Dim guia As String = TextBox1.Text

            Dim find As String = guia & ".jpg"
            Dim openFile As String = System.IO.Path.Combine(folder, pasta, guia)

            ListBox1.Items.Add(openFile)

    Mas o problema é que eu não consigo mostrar os ficheiros com a parte do nome inserido pelo utilizador, como por exemplo:

    O utilizador digita "ty674h8976fg541"e ele terá de encontrar e listar na ListBox o ficheiro "505_ty674h8976fg541" e "506_ty674h8976fg541".

    Será que alguém me poderia ajudar? Ficaria bastante grata!!

    Desde já obrigada :)

    • Tipo Alterado Thales F Quintas quarta-feira, 8 de junho de 2016 18:43 How To
    • Tipo Alterado NnArq quinta-feira, 9 de junho de 2016 10:57
    quarta-feira, 8 de junho de 2016 16:29

Respostas

  • Oi amigo boa noite, bom vo te dar 2x ex, para que vc possa ter uma ideia de como seria.

    01

    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
           
        End Sub
    
        Dim icont As Integer = 1
        Dim folder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
        Dim pasta As String = "Nova pasta"
        Dim guia As String = "My image"
        Dim find As String = guia & ".png"
        Dim openFile As String = IO.Path.Combine(folder, pasta, find)
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    add:
            If (IO.File.Exists(openFile)) Then
                Me.ListBox1.Items.Add(openFile.ToString)
            Else
                pasta = "Nova pasta" & " (" & Convert.ToString(icont) & ")"
                openFile = IO.Path.Combine(folder, pasta, find)
                If (IO.File.Exists(openFile)) Then
                    icont = 1
                    Me.ListBox1.Items.Add(openFile.ToString)
                Else
                    icont += 1
                    MsgBox(openFile)
                    Threading.Thread.Sleep(1)
                    GoTo add
                End If
            End If
        End Sub
    End Class
    

    02

    Imports System.IO
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
           
        End Sub
    
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim pasta As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
            Dim pastas As New DirectoryInfo(pasta)
            For Each x As DirectoryInfo In pastas.GetDirectories
                Me.ListBox1.Items.Add(x.Name)
            Next
        End Sub
    
        Dim pasta As String
        Dim folder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
        Dim guia As String = "My image"
        Dim find As String = guia & ".png"
    
        Private Sub ListBox1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseDoubleClick
            pasta = Me.ListBox1.SelectedItem.ToString
            Dim openFile As String = System.IO.Path.Combine(folder, pasta, find)
            If (File.Exists(openFile)) Then
                Me.ListBox1.Items.Add(openFile)
            Else
                MsgBox("Este arquivo não esta na pasta!")
            End If
        End Sub
    End Class
    

    Espero ter ajudado vc, bom uso dos codigos e espero ter ajudado vc, ate mais :).  

    quarta-feira, 8 de junho de 2016 23:51

Todas as Respostas

  • Olá,

    Acho que se não entendi mal, você pode montar o nome do arquivo com wildcards assim:

    Dim find As String = "*" & guia & "*.jpg"

    É isso?

    [Editado]

    Nunca testei não sei se funciona.


    quarta-feira, 8 de junho de 2016 19:53
  • tente isso Dim t() As String = IO.Directory.GetFiles("C:\Windows\", "*explo*")

    Eduardo Bicudo Junior

    quarta-feira, 8 de junho de 2016 22:36
  • Oi amigo boa noite, bom vo te dar 2x ex, para que vc possa ter uma ideia de como seria.

    01

    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
           
        End Sub
    
        Dim icont As Integer = 1
        Dim folder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
        Dim pasta As String = "Nova pasta"
        Dim guia As String = "My image"
        Dim find As String = guia & ".png"
        Dim openFile As String = IO.Path.Combine(folder, pasta, find)
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    add:
            If (IO.File.Exists(openFile)) Then
                Me.ListBox1.Items.Add(openFile.ToString)
            Else
                pasta = "Nova pasta" & " (" & Convert.ToString(icont) & ")"
                openFile = IO.Path.Combine(folder, pasta, find)
                If (IO.File.Exists(openFile)) Then
                    icont = 1
                    Me.ListBox1.Items.Add(openFile.ToString)
                Else
                    icont += 1
                    MsgBox(openFile)
                    Threading.Thread.Sleep(1)
                    GoTo add
                End If
            End If
        End Sub
    End Class
    

    02

    Imports System.IO
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
           
        End Sub
    
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim pasta As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
            Dim pastas As New DirectoryInfo(pasta)
            For Each x As DirectoryInfo In pastas.GetDirectories
                Me.ListBox1.Items.Add(x.Name)
            Next
        End Sub
    
        Dim pasta As String
        Dim folder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
        Dim guia As String = "My image"
        Dim find As String = guia & ".png"
    
        Private Sub ListBox1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseDoubleClick
            pasta = Me.ListBox1.SelectedItem.ToString
            Dim openFile As String = System.IO.Path.Combine(folder, pasta, find)
            If (File.Exists(openFile)) Then
                Me.ListBox1.Items.Add(openFile)
            Else
                MsgBox("Este arquivo não esta na pasta!")
            End If
        End Sub
    End Class
    

    Espero ter ajudado vc, bom uso dos codigos e espero ter ajudado vc, ate mais :).  

    quarta-feira, 8 de junho de 2016 23:51
  • Ajudas-te imenso! Muito obrigado :)
    quinta-feira, 9 de junho de 2016 08:55
  • De nada amigo, bom uso codigo :).  
    quinta-feira, 9 de junho de 2016 17:13