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.

——————- Filesystem.asp ————————

<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.

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.

Favorilerinize Ekleyin.
  • BlinkList
  • del.icio.us
  • Digg
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists
  • blogmarks
  • Furl
  • Netscape
  • NewsVine
  • Reddit
  • Shadows
  • Technorati
  • YahooMyWeb
  • Fark
  • feedmelinks
  • Fleck
  • kick.ie
  • LinkaGoGo
  • Linkter
  • MyShare
  • Spurl
  • Webride