Arkadaşlar merhaba. Bir proje üzerine sizden yardım almak istiyorum. Projeyi anlatmak gerekirse projede bir dosya arandığı zaman dosyalar listelenecek ve dosya tıklandıktan sonra program üzerinde programı gösterecek. Edinebildiğim kod bilgileri aşağıdaki gibidir. Bana ne yapmam gerektiği konusunda yardımcı olursanız memnun olurum.
-----
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------------