Salve, non sono un esperto in vb.net ed ho inziato da poco la programmazione desktop, vorrei realizzare un codice che mi cerca un file in tutte le sottocartelle dell'unità disco dove si esegue il programma, però non riesco a farlo funzionare bene e vorrei che mi cercasse il file inserendo anche solo le iniziali del nome e non l'intero nome... Per adesso trova solo il file se viene inserito l'intero nome.estensione e solo nella directory principale e non nelle sotto directory, non sono riuscito a far ciclare GetFiles("*.*", IO.SearchOption.AllDirectories)
codice:
Private Function TrovaFileNellaCartella(ByVal NomeDelFileDaCercare As String, ByVal PercorsoCartella As String) As String
Dim res As String = ""
Dim Cartelle() As String
Try
Dim FileContenuti() As IO.FileInfo = New IO.DirectoryInfo(PercorsoCartella).GetFiles()
For i As Integer = 0 To FileContenuti.Length - 1
If FileContenuti(i).Name.ToUpper = NomeDelFileDaCercare.ToUpper Then
Dim coso As Integer = -1
Select Case UCase(FileContenuti(i).Extension)
Case ".AVI"
coso = 1
Case ".MKV"
coso = 2
Case ".MPG"
coso = 4
Case ".TS"
coso = 5
Case ".DIVX"
coso = 6
Case ".MPEG"
coso = 4
Case ".WMV"
coso = 7
Case ".VOB"
coso = 8
Case ".MP4"
coso = 9
Case ".MOV"
coso = 9
Case ".Mp4"
coso = 9
Case ".MPA"
coso = 9
Case ".MP2"
coso = 9
Case ".MOV"
coso = 9
Case ".MKA"
coso = 2
Case ".MOV"
coso = 9
Case ".IFO"
coso = 6
'Case .... <- etcetera...
Case Else
coso = 0
End Select
If Not coso = 0 Then
estensione.Text = FileContenuti(i).Extension
ListView2.Items.Add(New ListViewItem(FileContenuti(i).ToString, coso))
End If
Return FileContenuti(i).FullName
End If
Next
Cartelle = IO.Directory.GetDirectories(PercorsoCartella)
For i As Integer = 0 To Cartelle.Length - 1
res = TrovaFileNellaCartella(NomeDelFileDaCercare, Cartelle(i))
If res <> "" Then
Return res
End If
Next
Return res
Catch
MsgBox("Cartella protetta o inaccessibile..... Selezionare un altra cartella", MsgBoxStyle.Critical)
End Try
End Function
Il pulsante ha questo codice
codice:
Private Sub buttoncerca_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttoncerca.Click
Dim nome As String = Application.StartupPath
Dim letteraunita() As String = nome.Substring(0, 3).Split("\")
letteraunita(0) = letteraunita(0) + "\"
TrovaFileNellaCartella(textcerca.Text, letteraunita(0))
End Sub
Oltre a qui non sono riuscito ad andare viste le mie non molte conoscenze desktop..
QUalk1 può aiutarmi per fare in modo che funge come una normale ricerca di un file ?
Ringrazio anticipatamente