Vb.net Dosya Arama

visual basic.net ortamında kullanıcının gireceği root directory içerisindeki .mp3 .wav .wma uzantılı dosyaları bulmayı anlatmaya calısacam. biraz ugrasarak buldum fakat aslına bakarsanız çok basit. rekürsif fonksiyon kullanarak kullanıcının verdiği directory’yi iyi bir şekilde inceleyeceğiz.
şimdi herşeyden önce dosyaları listbox a yazdıracağız.
şimdi rekürsif dedik:rekürsif demek çalışırken gerekli oldugu yerde kendini çağırabilen yani kosula bağlı olarak kendini tekrar tekrar çalıştırabilen fonksiyonlara denir.
şimdi fonksiyonu açıklamalı bi şekilde yazdım:

Private Function bul(ByVal k As String) As String
Dim files() As String ’dosya isimlerini tutacağımız array(dizi)
Dim directories() As String ’klasör isimlerini tutacağımız dizi

Try

directories = Directory.GetDirectories(k) ’k burada dısarıdan alınan veri.

’ilk girişte yani fonksiyon ilk çalıstıgında k nın değeri kullanıcının girdiği directory e eşittir.
’daha sonrasında fonksiyon her kendini çalıstırdıgında bu değeri değiştirerek alt klasörlere gireceğiz

files = Directory.GetFiles(k)

For Each deneme As String In files ’ for each dememizin sebebi files dizisinde kaç tane dosya oldugunu bilmememizdir

If Microsoft.VisualBasic.Right(deneme, 3) = “mp3” _
Or Microsoft.VisualBasic.Right(deneme, 3) = “wma” _
Or Microsoft.VisualBasic.Right(deneme, 3) = “wav” Then

’bu komut (microsoft.visualbasic.right) bulunan her dosyanın sağdan 3 harfini ele alır
’burada karsılastırma yapıyoruz
’eğer bulunan dosyaların uzantıları mp3 wma veya wav ise listeye yazdıracağız
’isterseniz tırnaklar arasındaki değerleri değiştirerek aramanızı istediğiniz yönde ilerletebilirsiniz

ListBox2.Items.Add(deneme)’gerekli kosullar sağlanırsa listeye eklenecek
End If

Next

For Each deneme As String In directories
’ve işte rekürsif fonksiyonun merkezi diyebileceğimiz nokta
’burada fonksiyon directories dizisi içerisindeki her değer için fonksiyonu tekrarlayacak
’yani alt klasorlere geçiş yapacağız
bul(deneme)
’bul(deneme) ==> fonksiyon tekrar çağrılırken bu sefer dısarıdan aldıgımız veri kullanıcının girdiği değil
’en son kaldığımız klasor

Next

Catch ex As Exception

End Try
End Function

tabi unutmamanız gereken bi nokta fonksiyonu nerde kullanacaksanız en azından bi adım öncesinden k değişkenine giriş almanız gerek. Yani kullanıcıdan aratmasını istediği klasor ismini almanız ve bunu k değişkenine aktarmanız gerekecek. şu şekilde mesela:

k=inputbox(“aratmak istediğiniz klasor”,”ana klasor ismi”,”D:\\”)

bi media player ekleyin. bi de buton
buton click olayına mediaplayer.url=listbox2.selecteditem dediğinizde mp3 çalar oluşturmuş olacaksınız.

Bu durumu farklı uygulamalar içinde kullanabilirsiniz.

One Response

Cevap Bırakın


*