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.
Oncelikle ellerine saglik kodu gorunce nasil dusunemedim diye kendi kendime dovundum 🙂 sizden birsey rica edicem codegear 2010 kullanmaya yeni basladim malum kavramlar cok farkli 🙂 ,kodun mantigini kavramama ragmen kavramlari,kod yapisini fazla bilmedigim icin codegear 2010 ortaminda bu kodu yazamadim yardimci olursaniz cok sevinirim.simdiden tesekkurler iyi calismalar…