Ön Bilgiler
ASP´nin sağladığı en işe yarar nesnelerden birisi olan File Scripting Object (FSO) sayesinde Winamp, Windows Media Player gibi çokluortam yürütücülerinin çalabildiği müzik listesi dosyalarını (.m3u) oluşturabiliriz. Yazacağımız kodlar bilgisayarınızda arşiv olarak tutmak istediğiniz listelerinizi oluşturmanıza olanak sağlarken FSO destekli bir sunucuda Online Radyo sistemi kurmak için de ideal olacaktır.
Gerekli Araçlar
*Notepad, Editpad gibi bir metin editörü
*M3U dosyalarını çalabilmek için bir ortam yürütücüsü
Giriş
Öncelikle bir M3U dosyasının neye benzediğini görelim.

Yukarıda görüldüğü gibi üretmek istediğimiz dosya yazı tabanlı bir dosyadan oluşuyor. Sayfanın en üstünde #EXTM3U yazıyor ve onun altında da dosyaların tam adresleri gözüküyor. Bu noktadan yola çıkarsak yapmak istediğimiz iş oldukça basit. FSO ile dosyaları listeleyeceğiz, aralarından mp3 olanları ayıklayacağız ve listelediğimiz dosyaları yine FSO ile bir yazı dosyası olarak kaydedeceğiz.
1.Aşama
İlk koda başlayalım, bu dosya ile belirttiğimiz klasördeki dosyaları listeleyeceğiz.
KOD1 | m3u.asp | 1.AŞAMA:
<% ´#########FSO Nesnesini oluşturuyoruz.
set fso=server.createobject("scripting.filesystemobject")
´######### Klasör ismi klasor_ismi=request("klasor") %>
<% ´#### Klasör Açma Nesnesi set klasor=fso.getFolder(klasor_ismi)
´#### Klasörün içindeki toplam dosya sayısı sayi=klasor.files.Count yazi=""&klasor.path&" klasöründe "&sayi&" dosya bulundu.
" response.write yazi response.write " Dosyalar :"
´#### Klasörün içindeki uzantısı MP3 veya mp3 olan dosyaları listeliyoruz. for each dosya in klasor.Files uzanti=Right(dosya.Name,3) if uzanti="mp3" or uzanti="MP3" then ´#### "say=say+1" klasördeki mp3 dosyalarının adedini saklıyor. say=say+1 response.write ""&dosya.name&" " end if next
´#### Klasörde mp3 uzantılı dosya yoksa uyarı yazdır. if say-1="0" then response.write "Bu klasörde mp3 dosyası yok." end if
´#### Klasörde bulunan mp3 dosyalarının adedini yazdır. response.write "
Bu dosyaların "&say-1&" tanesi mp3 formatında. " ´############################ %>
Kodun içinde satırların açıklamaları var fakat kısaca ne yaptığından bahsedelim. İşlem teoride planladığımız gibi m3u.asp?klasor=C:Documents and SettingsAdministratorDesktopmp3 şeklinde belirttiğimiz klasörde bulunan mp3 dosyalarını listeliyor. Kodun yaptığı işlemin ekran görüntüsü aşağıdaki gibi olmalıdır.

2.Aşama
İkinci kodumuzda, 1.aşamada listelediğimiz dosyaları m3u dosyası haline getireceğiz. Bunun için yine FSO´nun CreateTextFile fonksiyonunu kullanacağız.
KOD2 | m3u.asp | 2.AŞAMA:
<% ´2.AŞAMA ´########################################################################################## ´#### mp3liste.m3u isimli bir dosya oluştur set yaz=fso.createtextfile(server.mappath("mp3liste.m3u"))
´#### mp3liste.m3u dosyasının 1. satırına #EXTM3U yazdır yaz.WriteLine("#EXTM3U"&vbcrfl)
´#### m3u.asp?klasor ile belirtilen klasörün içindeki tüm dosyaları hafızada listele for each dosya in klasor.Files uzanti=Right(dosya.Name,3)
´#### uzantısı mp3 olan tüm dosyaları mp3liste.m3u dosyasına yazdır. if uzanti="mp3" or uzanti="MP3" then yaz.WriteLine(dosya.Path & vbcrfl) end if next Response.Write "mp3liste.m3u oluşturuldu!" %>
Üstteki kod da gayet basit bir mantıkla yürüyor. Sayfaya tekrar yazdırmadan dosyaları tekrar listeliyoruz ve tam adreslerini oluşturduğumuz mp3liste.m3u dosyasına yazdırıyoruz. Ayrıntılı bilgi kodun içinde mevcut.
Sonuç
Üstteki kodumuz da çalışınca ana ekranın görüntüsü alttaki gibi oluyor.

mp3liste.m3u, m3u.asp ile aynı klasörde oluşuyor.

Eğer liste dosyasının başka bir klasörde oluşmasını istiyorsanız
set yaz=fso.createtextfile(server.mappath("mp3liste.m3u")) satırını
set yaz=fso.createtextfile("C:Klasör ismimp3liste.m3u") şeklinde değiştirebilirsiniz.
mp3liste.m3u dosyasına çift tıkladığınızda

m3u dosyalarını yürütmesi için kullandığınız programda oluşturduğunuz liste başarılı bir şekilde çalışmaya başlayacaktır.
Son notlar
*Her ne kadar bir problem çıkma riski gözükmese de kodların bilgisayarınıza verebileceği zararlardan Fındık Kurdu ve yazının yazarı mesul değildir.
*Üstte görmüş olduğunuz yazının telif hakları Cemil CENGİZ´e ve Fındık Kurdu ailesine aittir.
*Yazı ile ilgili her türlü sorunuz için istanblog@gmail.com adresini kullanabilirsiniz.
|