19 Mart 2013 Salı
ALT DİZİNLERDEN DOSYA ARAMAK VE LİSTEDE GÖSTERMEK
Recursive (Yinelemeli) iiç içe olan dizinlerde arama yapma Fonksiyonuna bir örnek
18.03.2013
KOD İNDİR
Imports System.IO 'Alt Dizinlerde Ara -RECURSIVE Public Class Form1 #Region "Form işlemleri" Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TxtBaslamaDizini.Text = My.Settings.BaslamaDizini CmbUzanti.Text = My.Settings.Uzanti If CmbUzanti.Text = "" Then CmbUzanti.SelectedIndex = 1 Label6.Visible = False End Sub Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing My.Settings.BaslamaDizini = TxtBaslamaDizini.Text My.Settings.Uzanti = CmbUzanti.Text My.Settings.Save() End Sub #End Region #Region "Başlama Dizini Seç" Private Sub BtnBaslamaDiziniSec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBaslamaDiziniSec.Click KlasorGosterFBD.SelectedPath = TxtBaslamaDizini.Text If (KlasorGosterFBD.ShowDialog() = DialogResult.OK) Then TxtBaslamaDizini.Text = KlasorGosterFBD.SelectedPath End If End Sub #End Region #Region "Dosya Arama işlem ve fonksiyonları" Private Sub btnBul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBul.Click DosyaAra(DosyaListesi, TxtBaslamaDizini.Text, CmbUzanti.Text) End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Me.DosyaListesi.Items.Clear() End Sub Private Sub DosyaAra(ByVal Listemiz As ListBox, ByVal Aramaya_Baslama_Dizini As String, ByVal DsyUzantisi As String) Windows.Forms.Cursor.Current = Cursors.AppStarting Try DosyaListesi.Items.Clear() Dim Uzanti() As String = UzantiVeTirnak(DsyUzantisi) Dim Dizin_Yolu As New DirectoryInfo(Aramaya_Baslama_Dizini) DizinAra(Listemiz, Dizin_Yolu, Uzanti) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub DizinAra(ByVal Listemiz As ListBox, ByVal Dizin_Yolu As DirectoryInfo, ByVal Uzanti() As String) For Each DsyUzantisi As String In Uzanti For Each Dsy_Bilgisi As FileInfo In Dizin_Yolu.GetFiles(DsyUzantisi) DosyalariEkle(Listemiz, Dsy_Bilgisi) Next Dsy_Bilgisi Next DsyUzantisi ' Alt dizinleri ara For Each AltDzn_Bilgisi As DirectoryInfo In Dizin_Yolu.GetDirectories() DizinAra(Listemiz, AltDzn_Bilgisi, Uzanti) Next AltDzn_Bilgisi End Sub Private Sub DosyalariEkle(ByVal Listemiz As ListBox, ByVal Dsy_Bilgisi As FileInfo) Try Listemiz.Items.Add(Dsy_Bilgisi.FullName) Catch ex As Exception MessageBox.Show("Hata işleme dosyası " & Dsy_Bilgisi.FullName & "\n" & ex.Message) End Try Label6.Visible = True Label6.Text = Listemiz.Items.Count.ToString & " Adet Dosya Bulundu.." End Sub Private Function UzantiVeTirnak(ByVal pattern_string As String) As String() If (pattern_string.Contains("(")) Then pattern_string = MetniParantezeAl(pattern_string, "(", ")") End If Dim result() As String = pattern_string.Split(";"c) For i As Integer = 0 To result.Length - 1 result(i) = result(i).Trim() Next i Return result End Function Private Function MetniParantezeAl(ByVal txt As String, ByVal Parantez As String, ByVal delimiter2 As String) As String Dim Pozisyon1 As Integer = txt.IndexOf(Parantez) Dim Text_Baslangici As Integer = Pozisyon1 + Parantez.Length Dim Pozisyon2 As Integer = txt.IndexOf(delimiter2, Text_Baslangici) Return txt.Substring(Text_Baslangici, Pozisyon2 - Text_Baslangici) End Function #End Region #Region "Seçilen Dosyayı Çalıştır" Private Sub DosyaListesi_MouseDoubleClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles DosyaListesi.MouseDoubleClick ' uygulama çift tıklandığında dosyayı aç. For Each Secilen_Dsy As String In DosyaListesi.SelectedItems System.Diagnostics.Process.Start(Secilen_Dsy) Next Secilen_Dsy End Sub #End Region End Class
Sonraki Kayıt
Önceki Kayıt
Ana Sayfa