avatar
Tarih: 15:50, 09-01-09 15:50 Sitemize Hoşgeldiniz. (Oturum AçKayıt Ol)

Bu Konuyu Görüntüleyenler
Bu Konuyu görüntüleyenler: 1 Ziyaretçi

Konuyu Gönder  Mesaj Önizleme 
File System Objesi ile Windows Gezgini
22:09, 18-06-08 22:09
Mesaj: #1
File System Objesi ile Windows Gezgini
Bu yazımızda ASP ile File System objesini kullanarak basit bir windows gezgini yazacağız.
Bu işlem için Database yada benzeri bir harici dosya kullanmadan, bir tek dosya ile bu işlemi gerçekleştireceğiz.

Bu iş için öncelikle bir asp dosyası yaratalım ve de adını Filesystem.asp verdelim.daha sonra yarattığımız bu Filesystem.asp dosyasının içerisine aşağıdaki ASP kodunu ekleyelim.

Kod:
<HTML>
<HEAD>
<TITLE>Windows Gezgini...</TITLE>
</HEAD>
<BODY>
<div id=divdrives>
<font face=verdana size=2>Sisteminizdeki Sürücüler :<p>
<%
dim objfso
set objfso=server.CreateObject("Scripting.FileSystemObject")
for each x in objfso.Drives
        set drivename=objfso.GetDrive(x)
        Response.Write "<a href=filesystem.asp?drive="&drivename.DriveLetter&">"&drivename.DriveLetter&"</a> "
next
if Request("drive")<>"" then call FolderList(Request("drive"))
if Request("foldername")<>"" then call FileList(cstr(Request("foldername")))
if Request("filename")<>"" then call FileDetails(cstr(Request("filename")))

'Sürücüler.
Function FolderList(Drivename)
        Response.Write " &nbsp;<img src=ustfolder.gif id=ustfolder style=cursor:hand alt="&chr(34)& _
        "bir üst klasöre gitmek için tıklayınız."&chr(34)&">"
        Response.Write "<br><br>"
        set RootFolders=objfso.GetDrive(Drivename).RootFolder
        set Folders=RootFolders.SubFolders
        set SubFiles=RootFolders.Files
                 for each i in Folders
                 Response.Write "<img src=folder.gif> <a href=filesystem.asp?foldername="&i.ShortPath& _
                 " style=text-decoration:none>"&i.name&"</a><br>"
        next
        for each x in SubFiles
                 Response.Write "<img src=file.gif> <a style=text-decoration:none                  href="&chr(34)&"filesystem.asp?filename="& _
                 x.path&chr(34)&">"&x.name&"</a><br>"
        next
End Function

'Klasör içeriğini listeleme.
Function FileList(Foldername)
        Response.Write " &nbsp;<img src=ustfolder.gif id=ustfolder style=cursor:hand         alt="&chr(34)& _
        "bir üst klasöre gitmek için tıklayınız."&chr(34)&">"
        Response.Write "<br><br>"
        set filesname=objfso.GetFolder(Foldername).Files
        set Foldersname=objfso.GetFolder(Foldername).SubFolders
        for each i in Foldersname
                 Response.Write "<img src=folder.gif> <a href=filesystem.asp?foldername="&i.ShortPath&                  _
                 " style=text-decoration:none>"&i.name&"</a><br>"
        next
        for each x in filesname
                 Response.Write "<img src=file.gif> <a style=text-decoration:none                  href="&chr(34)& _
                 "filesystem.asp?filename="&x.path&chr(34)&">"&x.name&"</a><br>"
        next
End Function

Function FileDetails(Filename)
        set filesdetail=objfso.GetFile(cstr(Filename))
        Response.Write " &nbsp;<img src=ustfolder.gif id=ustfolder style=cursor:hand         alt="& _
        chr(34)&"bir üst klasöre gitmek için tıklayınız."&chr(34)&">"
        Response.Write "<div id=divfiles class=divstyle>"
        Response.Write "&nbsp;<b>Seçilen Dosyanın Ayrıntıları : </b><br><br>"
        Response.Write "&nbsp;<b>Path:</b> " & cstr(Filename)         & "<br>"
        Response.Write "&nbsp;<b>Dosya Adı :</b> " & filesdetail.Name         & "<br>"
        Response.Write "&nbsp;<b>Dosya Büyüklüğü :</b> " &         filesdetail.Size & " KB <br>"
        Response.Write "&nbsp;<b>Dosya Tipi :</b> " & filesdetail.Type         & " <br>"
        Response.Write "&nbsp;<b>Son Düzenleme Tarihi :</b> "         & filesdetail.DateLastModified & "<br>"
        Response.Write "&nbsp;<b>Son Erişim Tarihi :</b> " &         filesdetail.DateLastAccessed & "<br>"
        Response.Write "<br><br>&nbsp;<b>!</b><a href="&chr(34)&filename&chr(34)&         _
        " target=_new style=text-decoration:none>Bu Dosyayı açmak için buraya         tıklayınız.</a>"
        Response.Write "</div>"
End Function
%>

<script language="VBScript">
        sub ustfolder_Onclick()
                 history.go(-1)
        end sub
</script>
</div>
</BODY>
</HTML>

Bu kod bizim bilgisayarımızda sürücüler ve klasörler arasında gezinmemizi ve istediğimiz herhangi bir dosya hakkında bize bilgi verilmesini sağlar.

Şimdi bu kodu bloklar halinde inceleyelim.

Kod:
1. BLOK

<%
dim objfso
set objfso=server.CreateObject("Scripting.FileSystemObject")
for each x in objfso.Drives
        set drivename=objfso.GetDrive(x)
        Response.Write "<a href=filesystem.asp?drive="&drivename.DriveLetter&">"&drivename.DriveLetter&"</a> "
next
if Request("drive")<>"" then call FolderList(Request("drive"))
if Request("foldername")<>"" then call FileList(cstr(Request("foldername")))
if Request("filename")<>"" then call FileDetails(cstr(Request("filename")))
%>

Bu blokta Filesytemobjesi yaratılıyor ve sistemde bulunan sürücüler (A:,C: v.s) listeleniyor.
Dikkat ederseniz 3. satırda For each döngüsü görüyoruz.Bu döngü belli koleksiyonların içerisindeki elemanları listeler.
Burada kullanmamızın sebebi Filesystem objesinin GetDrive koleksiyonun elemanlarını listemek içindir.
if ile başlayan satırlar kontrol amacıyla konulmuştur.

2. BLOK
<%
Function FolderList(Drivename)
        Response.Write " &nbsp;<img src=ustfolder.gif id=ustfolder style=cursor:hand alt="&chr(34)& _
        "bir üst klasöre gitmek için tıklayınız."&chr(34)&">"
        Response.Write "<br><br>"
        set RootFolders=objfso.GetDrive(Drivename).RootFolder
        set Folders=RootFolders.SubFolders
        set SubFiles=RootFolders.Files
                 for each i in Folders
                 Response.Write "<img src=folder.gif> <a href=filesystem.asp?foldername="&i.ShortPath& _
                 " style=text-decoration:none>"&i.name&"</a><br>"
        next
        for each x in SubFiles
                 Response.Write "<img src=file.gif> <a style=text-decoration:none                  href="&chr(34)&"filesystem.asp?filename="& _
                 x.path&chr(34)&">"&x.name&"</a><br>"
        next
End Function
%>

Bir önceki kodda Sürücüleri listelemiştik fakat ordan seçilen sürücünün içerisindeki dosya ve klasörlerin nasıl listeleneceğinden bahsetmemiştik.
İşte burada o işlemi yani seçilen sürücünün içeriğinin listelenmesi işlemini bu fonksiyon sayesinde gerçekleştiriyoruz.
Ayrıca bu fonksiyon alt klasörlere gidildikçe onlara ait alt klasörleri de ekrana getirir.

3. BLOK
<%
Function FileList(Foldername)
        Response.Write " &nbsp;<img src=ustfolder.gif id=ustfolder style=cursor:hand         alt="&chr(34)& _
        "bir üst klasöre gitmek için tıklayınız."&chr(34)&">"
        Response.Write "<br><br>"
        set filesname=objfso.GetFolder(Foldername).Files
        set Foldersname=objfso.GetFolder(Foldername).SubFolders
        for each i in Foldersname
                 Response.Write "<img src=folder.gif> <a href=filesystem.asp?foldername="&i.ShortPath&                  _
                 " style=text-decoration:none>"&i.name&"</a><br>"
        next
        for each x in filesname
                 Response.Write "<img src=file.gif> <a style=text-decoration:none                  href="&chr(34)& _
                 "filesystem.asp?filename="&x.path&chr(34)&">"&x.name&"</a><br>"
        next
End Function
%>

Bu blok ise seçilen bir klasörün yada sürücünün altında bulunan dosyaları listemek amaçlı olarak kullanılır.
Sürücüler,klasörler ve alt klasörler altındaki tüm dosyalar bu fonksiyon sayesinde listelenir.

4. BLOK
<%
Function FileDetails(Filename)
        set filesdetail=objfso.GetFile(cstr(Filename))
        Response.Write " &nbsp;<img src=ustfolder.gif id=ustfolder style=cursor:hand         alt="& _
        chr(34)&"bir üst klasöre gitmek için tıklayınız."&chr(34)&">"
        Response.Write "<div id=divfiles class=divstyle>"
        Response.Write "&nbsp;<b>Seçilen Dosyanın Ayrıntıları : </b><br><br>"
        Response.Write "&nbsp;<b>Path:</b> " & cstr(Filename)         & "<br>"
        Response.Write "&nbsp;<b>Dosya Adı :</b> " & filesdetail.Name         & "<br>"
        Response.Write "&nbsp;<b>Dosya Büyüklüğü :</b> " &         filesdetail.Size & " KB <br>"
        Response.Write "&nbsp;<b>Dosya Tipi :</b> " & filesdetail.Type         & " <br>"
        Response.Write "&nbsp;<b>Son Düzenleme Tarihi :</b> "         & filesdetail.DateLastModified & "<br>"
        Response.Write "&nbsp;<b>Son Erişim Tarihi :</b> " &         filesdetail.DateLastAccessed & "<br>"
        Response.Write "<br><br>&nbsp;<b>!</b><a href="&chr(34)&filename&chr(34)&         _
        " target=_new style=text-decoration:none>Bu Dosyayı açmak için buraya         tıklayınız.</a>"
        Response.Write "</div>"
End Function
%>

Bu blokta bulunan fonksiyon ise ekrana seçilen dosya hakkında bilgiler getirir.
Bu bilgiler ;
· Dosyanın path’i
· Dosyanın adı
· Size olarak büyüklüğü
· Dosya Tipi (exe,txt v.s)
· Son düzenleme tarihi
· Son erişim tarihi
Ayrıca bu dosya Explorer tarafından açılabilecek bir dosya ise (txt,gif,jpg,excel,word,power point v.s) “ Bu Dosyayı açmak için buraya tıklayınız.” Linkine tıklayarak bu dosyayı açabiliriz.

<script language="VBScript">
        sub ustfolder_Onclick()
                history.go(-1)
        end sub
</script>

Bu blok ise bir önceki klasöre gitmekte kullanılan alt programı içermektedir.

[Resim: uyari.gif]Uyarı: İndirmeye başlamadan önce lütfen linklerin hepsini kontrol ediniz.
[Resim: istek.gif]İstek Yapmadan Önce Forumda Sadece Üyeler Linkleri Görebilir. Üye Olmak İçin TIKLAYIN Yapınız!
[Resim: saygi.gif]Verilen emeğe lütfen saygı gösteriniz. En azından bir teşekkür edebilirsiniz.


Her Türlü Sorununuzda Bana Ulaşın.
Zamanın Durduğu Kaliteli İnsanların Paylaşım Mekanı

Sadece Üyeler Linkleri Görebilir. Üye Olmak İçin TIKLAYIN

Hedefimiz En Büyük ve En İyi Olmaktır
Kullanıcının websitesini ziyaret et Bu kullanıcının gönderdiği tüm mesajları bul
Bu mesajı bir cevapta alıntı yap
Konuyu Gönder  Mesaj Önizleme 


Foruma Git:

OdevTurkiye.NeT - helllife.org - Tuba Büyüküstün - Yasemin Ergene - Selena Dizisi - AccessTr.neT - Amy Lee - burak sağyaşar