-----
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.-------
Dim directory = "D:" 'Burası en güzel kısmı.Çünkü burda istediğimiz dizini seçiyoruz.Ben Yerel Disk D'yi seçtim.
Dim files() As System.IO.FileInfo
Dim dirinfo As New System.IO.DirectoryInfo(directory)
files = dirinfo.GetFiles("deneme.txt", IO.SearchOption.AllDirectories) 'Burdaysa aranacak dosyamızı seçiyoruz.Burda ister bir dosya yazabiliriz istersekte dosya uzantısı yazabiliriz.
For Each file In files
ListBox1.Items.Add(file) 'Burdaysa bulduğu dosyaları ListBox1 e ekliyoruz.
Next----Dim directory = "D:" 'Burası en güzel kısmı.Çünkü burda istediğimiz dizini seçiyoruz.Ben Yerel Disk D'yi seçtim.
Dim files() As System.IO.FileInfo
Dim dirinfo As New System.IO.DirectoryInfo(directory)
files = dirinfo.GetFiles("*.txt", IO.SearchOption.AllDirectories) 'Burdaysa aranacak dosyamızı seçiyoruz.Burda ister bir dosya yazabiliriz istersekte dosya uzantısı yazabiliriz.
For Each file In files
ListBox1.Items.Add(file) 'Burdaysa bulduğu dosyaları ListBox1 e ekliyoruz.
Next------
Dim dealydevil1 = My.Computer.FileSystem.FileExists("C:\maxigame.txt") 'dealydevil1 - C:\maxigame.txt
If dealydevil1 = True Then 'eğer dealydevil1'deki dizinde dosya varsa
MsgBox("Dosya Bulundu.") 'dosya bulu
If MessageBox.Show("Kopyalansınmı?", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then 'cevap evet ise
My.Computer.FileSystem.CopyFile("C:\maxigame.txt", "C:\a\maxigame.txt", True) 'şu dizine kopyala
MsgBox("Taşındı") 'taşındı
End If
Else 'değilse
MsgBox("Dosya Bulunamadı.") 'bulunamadı
End If------------