Root > Documents > Web Güvenlik Açıkları > File System Object
Cyber-Warrior.Org \ Doküman \ Web Güvenlik Açıkları > File System Object
Madde
  Yazar : Nekeva
  Date : 13.12.2004 11:00:01
 
# File System Object
 


Merhabalar Arkadaslar çok yogun arastirmalar sonucu ve özellikle herkafadan bi ses çikmasina çok kizan Keypad üstadimin istegi dogrultusunda bu dökümani hazirlamis bulunuyorum. Içerisinde bu güne kadar yazilmis her türlü  dökümandan örnekler alintilar animsayabilirsiniz ama  dökümanin tüm yazilma islemleri derlenmesi ve sunulmasi bana aittir. Sonradan vay efendim ben görmedim ben duymadim ben yapmadim demeyelim
J))

 

FileSystemObject Nedir? Yenilirmi Içilir mi?
FileSystemObject (kisaca FSO diyecegiz) ASP’nin dolayisiyla VBScriptin bize sagladigi sihirli bir degnektir. FSO ile çalistigi bilgisayarin üzerindeki tüm dosya ve klasörlere ulasabilir, onlarla kolayca istediginiz islemleri yapabiliriz. Bunun içinde dosyalari kopyalamak, silmek, tasimak, listelemek, text dosyalari düzenlemek, yeni dosyalar olusturabilmek,dosyalarin özelliklerini degistirebilmek vardir. Yani bilgisayarinizda dosyalar üzerinde yaptiginiz islemlerin aynilarini yapabilirsiniz. FSO çok genis bir konu aslinda.Bir çok özelligi ve metodu var. Bunlari gruplayarak anlatmak en dogrusu olacaktir. Böylece konu içinde neyin nerede oldugunu bulabilirsiniz. Ben öncelikle FSO’nun özelliklerini ve metotlarini anlatacagim. Sonrada dosya islemleri,klasör islemleri,sürücü islemleri olarak anlatacagim.

FSO’yu kullanabilmek için önce Set komutu ile bir FSO nesnesi olusturmak gerekir. Bu nesne olmadan islem yapamayiz.
<%
Set FSO = CreateObject("Scripting.FileSystemObject")
%>


Burda hatirlanmasi kolay olsun diye nesnemize de FSO ismi verdik. Bundan sonraki örneklerde tekrar tekrar bu nesneyi olusturmayacagiz. Ama siz FSO gördügünüz yerde bunun daha önceden yukaridaki sekilde olusturuldugunu bilmelisiniz.


BuildPath

Verdiginiz bir yol üzerine verdiginiz isimde yeni yol ekler. Yol ifadesinin geçerli bir yol ifadesi olmasi gerekmez. String üzerinde islem yapar.

YeniYol = FSO.BuildPath(yol,eklenecek isim)

<%
YeniYol = FSO.BuildPath("C:Inetpubwwwroot","images")
%>

YeniYol degiskeninin degeri "C:Inetpubwwwrootimages" olur.

<%
Response.Write FSO.BuildPath("SaCReD","SeeR")
%>
Çiktisi "SaCReDSeeR" olur.

Sadece tek bir isim kullanmak zorunda degilsiniz. "images" yerine "imagesdeneme" seklinde de verebilirsiniz. Bu durumda da çikti "C:Inetpubwwwrootimagesdeneme" olacaktir. Bu metodun yaptigi isi asagidaki sekilde de yapabilirsiniz.

<%
YeniYol = "C:Inetpubwwwroot" & "" & "images"
%>

Ama sizin ana ve eklenecek yolunuz fazladan slashlar içeriyorsa yada degiskenler baska yerden aliniyor ve nasil geldigini bilmiyorsaniz BuildPath sizi bunlari temizleme derdinden kurtarir.

<%
YeniYol = FSO.BuildPath("C:Inetpubwwwroot","images")
%>
Çiktisi "C:Inetpubwwwrootimages" olur.


CopyFile

Belirtilen bir hedeften yine belirtilmis bir baska hedefe bir veya daha çok dosyayi kopyalar.

FSO.CopyFile KaynakDosya(yada Dosyalar),Hedef,Overwrite

Kaynak kopyalanacak olan dosya yada dosyalarin ismidir. Hedef ise ya kopyalanacak olan klasör ismi yada farkli bir isimle kopyalanacak ise yeni dosya ismidir. Overwrite ise eger kopyalanacak dosya hedefte zaten var ise üzerine yazip yazilmayacagini belirler. True olursa dosyanin üzerine yazar.False olursa dosyanin zaten var oldugunu söyleyip hata verir. Eger belirtilmez ise varsayilan olarak True kabul edilir. Kopyalanmak istenen klasör var olmalidir. Yoksa yol bulunamadi hatasi verir.

<%
FSO.CopyFile "c: esim.bmp" , "d:Resimler", True
%>
Bu kod c sürücündeki resim.bmp dosyasini D sürücüsünde ki Resimler klasörüne kopyalar. Eger dosya var ise üzerine yazar.
<%
FSO.CopyFile "c: esim.bmp" , "d:Resimler", False
%>
Bu kodda C sürücündeki resim.bmp dosyasini D sürücüsünde ki Resimler klasörüne kopyalar. Ama eger dosya var ise hata verir ve kopyalamaz. Eger True yada False olarak belirtmezseniz varsayilan olarak True kabul edilir.

<%
FSO.CopyFile "C: esim.bmp" , "D:Resimler"
%>
ile
<%
FSO.CopyFile "C: esim.bmp" , "D:Resimler esim.bmp"
%>
tamamen ayni isi yapar.

<%
FSO.CopyFile "c: esim.bmp" , "D:Resimlerpicture.bmp"
%>
Bu kod ise C sürücündeki resim.bmp dosyasini D sürücüsündeki Resimler klasörüne picture.bmp ismiyle kopyalar. Bir nevi farkli kaydet olayi yani.

CopyFile metodu ile birden çok dosyayi da ayni anda kopyalayabilirsiniz.

<%
FSO.CopyFile "C:*.*" , "D:Deneme"
%>

Burda *.* demekle C sürücünde ki tüm dosyalari D sürücüsündeki Deneme klasörüne kopyaliyoruz. Tabi ki burada yeni isim belirtme seçenegimiz yok. Sadece hedef klasör belirtebiliyoruz.

*.* yerine joker karakterler kullanarak kopyalanacak dosyalar için degisik seçenekler olusturabiliriz.

*.txt = sadece txt uzantili olanlar
b*.*  = isminin ilk harfi b olanlar
boot.*  = ismi boot olan dosyalar
?a*.* = isminin 2. harfi a olan dosyalar
?b?.ini = 3 harfli ve isminin 2. harfi b olan ini uzantili dosyalar.

NOT : FSO ile bu sekilde dosya kopyalayacaginiz gibi "FSO ile dosya islemleri" konusunda göreceginiz gibi GetFile ile dosyayi bir nesneye atayip "DosyaNesnesi.Copy Hedef" seklinde de kopyalayabilirsiniz. Ancak bu sekilde tek bir dosya kopyalayabilirsiniz.

<%
FSO.CopyFile "C:Resim.bmp" , "D:ResimlerResim.bmp"
’veya
FSO.CopyFile "C:Resim.bmp" , "D:Resimler"
%>
ile
<%
Set Dosya = FSO.GetFile("C:Resim.bmp")
Dosya.Copy "D:Resimler", True(False)
%>
ayni isi görür.


CopyFolder

Belirtilen bir hedef klasörü tüm alt klasörleri ve dosyalari ile birlikte belirtilen bir hedef klasöre kopyalar.

FSO.CopyFolder KaynakKlasor,Hedef,Overwrite

KaynakKlasor kopyalanacak olan klasör, Hedef kaynak klasörün kopyalanacagi hedef klasördür. Overwrite ise True veya False degerlerini alarak eger klasör var ise  klasörün üzerine yazilip yazilmayacagini belirler. True olursa üzerine yazilir. False olursa yazilmaz. Eger belirtilmez ise varsayilan olarak True kabul edilir.

<%
FSO.CopyFolder "C:Windows","D:Deneme",True
%>
Bu kod C sürücüsündeki Windows klasörünü tüm içerigiyle beraber D sürücüsündeki Deneme isimli klasörün içine kopyalar.Hedef belirtilirken sonunda slash kullanildigina dikkat edin. Eger slash kullanmazsaniz Windows klasörünün içerigi(kendisi degil) Deneme klasörüne kopyalanir.

<%
FSO.CopyFolder "C:Deneme*","D:Deneme"
’veya
FSO.CopyFolder "C:Deneme*","D:Deneme"
%>

Bu sekilde C sürücüsündeki Deneme klasörünün sadece alt klasörleri D sürücüsündeki Deneme klasörüne kopyalanir.

Eger hedef olarak verdiginiz klasör yok ise olusturulur ve kaynak klasörün içerigi buraya kaydedilir. Yani farkli kaydetme olayi. Mesela D sürücüsünde WinXP isimli bir klasör yok diyelim.
<%
FSO.CopyFolder "C:Windows","D:WinXP"
%>
Bu durumda C sürücüsündeki Windows klasörü D sürücüsüne WinXP ismiyle kaydedilir. Hedef klasör belirtilirken yine slash kullanilmadigina dikkat edin.

Eger XYZ klasörü yoksa
<%
FSO.CopyFolder "C:Windows","D:XYZWinXP"
%>
derseniz hata alirsiniz. FSO sizin için bir XYZ klasörü olusturup bunun içine WinXP’yi olusturmaz. Ama eger XYZ klasörü varsa WinXP klasörü yoksa bu olusturulur ve kaynak klasör içerigi bunun içine kopyalanir. Eger WinXP klasörü de varsa bu durumda, yukarda belirtildigi gibi, sonda slash kullanilip kullanilmadigina bagli olarak kaynak klasör ayni isimle klasör yapisi korunarak veya sadece içerigiyle bu klasör içine kopyalanir.

NOT : FSO ile bu sekilde klasör  kopyalayacaginiz gibi "FSO ile klasör islemleri" konusunda göreceginiz gibi GetFolder ile klasörü bir nesneye atayip "KlasorNesnesi.Copy Hedef" seklinde de kopyalayabilirsiniz. Ancak bu sekilde tek bir klasör kopyalayabilirsiniz.

<%
FSO.CopyFolder "C:Windows" , "D:Deneme", True(False)
%>
ile
<%
Set Klasor = FSO.GetFolder("C:Windows")
Klasor.Copy "D:Deneme", True(False)
%>
ayni isi görür.


CreateFolder

Adindan anlayacaginiz gibi verdiginiz klasör içinde verdiginiz isimde bos bir klasör olusturur.

FSO.CreateFolder YeniKlasor

True/False seklinde bir argümani yoktur. Eger olusturulmak istenen klasör varsa hata verir.

<%
FSO.CreateFolder "C:Deneme"
%>
C sürücüsünde Deneme isimli bir klasör olusturur.

<%
FSO.CreateFolder "C:SaCReDSeeR"
%> 
Eger C sürücünde SaCReD isimli bir klasör varsa içine SeeR isminde bir klasör olusturur. Eger yoksa yol bulunamadi hatasi verir.

<%
FSO.CreateFolder "C:WindowsSystem32SaCReDSeeR"
%>

System32 klasörü içinde SaCReDSeeR isminde bir klasör olusturur.


DeleteFile

Belirttiginiz bir dosya yada dosyalari siler.

FSO.DeleteFile DosyaIsmi

<%
FSO.DeleteFile "C:Deneme.txt"
%>

Siz direk dosya ismi yerine
konusunda isledigimiz gibi joker karakterler kullanarak birden fazla dosyayi silebilirsiniz.

<%
FSO.DeleteFile "C:Deneme*.*"
%>

C sürücüsünde ki Deneme klasörü içindeki tüm dosyalari siler.

*.txt = sadece txt uzantili olanlar
b*.*  = isminin ilk harfi b olanlar
boot.*  = ismi boot olan dosyalar
?a*.* = isminin 2. harfi a olan dosyalar
?b?.ini = 3 harfli ve isminin 2. harfi b olan ini uzantili dosyalar.

NOT : Siz bu sekilde dosya silebileceginiz gibi GetFile ile olusturdugunuz dosya nesnesinin Delete yöntemiyle nesnenin tuttugu dosyayi silebilirsiniz.

<%
Set Dosya = FSO.GetFile("C:DenemeResim.bmp")
Dosya.Delete
%>

Böylece Resim.bmp dosyasi silinmis oldu.


DeleteFolder

Verdiginiz bir klasörü tüm alt dosya ve klasörleri ile birlikte siler.

FSO.DeleteFolder KlasörIsmi

Klasör ismi sonunda yada / isareti kullanmamalisiniz.Yoksa hata alirsiniz.

<%
FSO.DeleteFolder "C:Deneme"
%>
C sürücüsündeki Deneme klasörünü tüm içerigiyle beraber siler.

NOT : Siz bu sekilde klasör silebileceginiz gibi GetFolder yöntemiyle olusturdugunuz klasör nesnesinin Delete metodu ile de nesnenin tuttugu klasörü silebilirsiniz.

<%
Set Klasor = FSO.GetFolder("C:Deneme")
Klasor.Delete
%>
C sürücüsündeki Deneme klasörü silinmis oldu.


DriveExists

Belirttiginiz sürücünün var olup olmadigini test eder. Eger var ise True yoksa False degeri döndürür.

FSO.DriveExists("Sürücü Harfi")

Verilecek deger Windows’un sürücüleri isimlendirme kurallarina uymalidir. Yani bir sürücüyü ifade etmek için harf kullanmalisiniz. Aksi takdirde çikti olarak her zaman False degeri döndürür.

<%
Response.Write FSO.DriveExists("C")
%>
Ekrana True yazdiracaktir.
<%
Response.Write FSO.DriveExists("Z")
%>
Eger hard diskinizi paramparça etmediyseniz False degeri döndürecektir. :)))))

Sürücü harfini tek basina yada önüne : veya : veya :/ konmus sekilde kullanabilirsiniz.

<%
FSO.DriveExists("C")
FSO.DriveExists("C:")
FSO.DriveExists("C:")
FSO.DriveExists("C:/")
%>

Yukaridaki kullanimlarin hepsi geçerlidir.
Küçük bir örnek.

<%
Set Suruculer = FSO.Drives

For Each Surucu in Suruculer

   If FSO.DriveExists(Surucu.DriveLetter) Then
       Response.Write Surucu.DriveLetter & "sürücüsü hazir"
   Else
       Response.Write Surucu.DriveLetter & "sürücüsü hazir degil"
   End If

Next
%>


FileExists

Verdiginiz bir dosyanin var olup olmadigini denetler. Var ise True yoksa False degeri döndürür.

FSO.FileExists("Dosya Ismi")

<%
If FSO.FileExists("C:Deneme.txt") = True Then
     Response.Write "dosya var"
Else
     Response.Write "dosya yok"
End If
%>


FolderExists

Verdiginiz bir klasörün var olup olmadigini denetler. Var ise True yoksa False degeri döndürür.

FSO.FolderExists("Klasör Ismi")

<%
If FSO.FolderExists("C:InetpubwwwrootDeneme") = True Then
     Response.Write "klasör var"
Else
     Response.Write "klasör yok"
End If
%>


GetAbsolutePathName

Verdiginiz bir yol için sürücünün root dizininden Windows isimlendirme kuralina göre tam yolu getirir. Verdiginiz yolun geçerli olup olmamasi yada Windows standartlarina uymasi önemli degildir. Çünkü bu metot string üzerinde islem yapar.

FSO.GetAbsolutePathName("yol")

<%
Response.Write FSO.GetAbsolutePathName("C:Inetpubwwwroot")
Response.Write FSO.GetAbsolutePathName("C:Inetpubwwwroot")
Response.Write FSO.GetAbsolutePathName("C:Inetpubwwwroot/")
Response.Write FSO.GetAbsolutePathName("C:/Inetpub/wwwroot/")
%>

Hepsinin de çiktisi "C:Inetpubwwwroot" seklinde olur.

<%
Response.Write FSO.GetAbsolutePathName("C:SaCReD/SeeR/deneme.abcdefg")
%>

Çiktisi "C:SaCReDSeeRdeneme.abcdefg" seklinde olur.

<%
Response.Write FSO.GetAbsolutePathName(Server.Mappath("/Deneme"))
%>

Çiktisi "C:InetpubwwwrootDeneme" olur.


GetBaseName

Verdiginiz bir yoldaki dosya yada klasörün taban adini getirir. Verdiginiz yolun geçerli olmasi yada Windows standartlarina uymasi önemli degildir. Çünkü bu metotta string üzerinde islem yapar.

FSO.GetBaseName("yol")

<%
Response.Write FSO.GetBaseName("C:SaCReDSeeRdenemeindex")
Response.Write FSO.GetBaseName("C:SaCReDSeeRdenemeindex")
Response.Write FSO.GetBaseName("C:SaCReDSeeRdenemeindex.asp")
Response.Write FSO.GetBaseName("C:SaCReDSeeRdenemeindex.asp")
Response.Write FSO.GetBaseName("denemeindex")
Response.Write FSO.GetBaseName("denemeindex.asp")
Response.Write FSO.GetBaseName("index.asp")

Response.Write FSO.GetBaseName(Server.Mappath("index"))
Response.Write FSO.GetBaseName(Server.Mappath("index.asp"))
%>

Hepsinin çiktisi "index" olur.


GetDrive

Verdiginiz bir sürücü harfi için o harfe sahip sürücü üzerinde islemler yapilabilen bir sürücü nesnesi döndürür. Sürücü geçerli olmalidir.

Set Surucu = FSO.GetDrive("Sürücü Harfi")

Bu konunun ayrintilarini "FSO ile sürücü islemleri" konusuna birakip geçiyoruz.


GetDriveName

Verdiginiz bir yol stringi için sürücü harfini içeren bir string döndürür. Verdiginiz yolun geçerli olmasi önemli degildir. Ancak sürücü harfinden sonra (:) olmalidir.

FSO.GetDriveName("Yol")

<%
Response.Write FSO.GetDriveName("z:")
Response.Write FSO.GetDriveName("z:")
Response.Write FSO.GetDriveName("z:/")
Response.Write FSO.GetDriveName("z:sfgjcvmnc")
Response.Write FSO.GetDriveName("z:sfgjcvmnc")
Response.Write FSO.GetDriveName("z:/sfghdf")
%>

Hepsinin çiktisi "z:" olur.

<%
Response.Write FSO.GetDriveName(Server.Mappath("/"))
%>

Çiktisi "C:" olur.

NOT : Siz bu sekilde bir yol ifadesi için sürücü harfini aldiginiz gibi GetFile ile olusturulmus dosya nesnesinin veya GetFolder ile olusturulmus klasör nesnesinin Drive özelligi ile de sürücü harfini alabilirsiniz. Ama bu yöntemde yol ifadesi dolayisiyla dosya veya klasör geçerli, yani var olmalidir.

<%
Set Klasor = FSO.GetFolder("C:DenemeSaCReD")
Response.Write Klasor.Drive
%>
Çiktisi "C:" olur.

<%
Set Dosya = FSO.GetFile("C:DenemeSaCReDindex.asp")
Response.Write Dosya.Drive
%>
Çiktisi "C:" olur.


GetExtensionName

Verdiginiz string içinde en son bilesenin uzantisini verir. Verdiginiz stringin geçerli bir yol ifadesi olmasi yada dosya uzantisinin geçerli bir uzanti olmasi gerekmez. Kisacasi verdiginiz string içindeki son noktadan sonraki kismi verir.

FSO.GetExtensionName("string")

<%
Response.Write FSO.GetExtensionName("C:Denemeindex.asp")
%>
Çiktisi "asp"

<%
Response.Write FSO.GetExtensionName("C:Denemeindex.SaCReD")
%>
Çiktisi "SaCReD"

<%
Response.Write FSO.GetExtensionName("ahmetmehmetsüleyman.hilmi")
%>
Çiktisi "hilmi"

<%
Response.Write FSO.GetExtensionName("ahmetmehmetsüleyman.hilmi.fikri.zikri")
%>
Çiktisi "zikri"


GetFile

Belirttiginiz bir dosya için üzerinde islemler yapilabilen bir dosya nesnesi olusturur. Dosya geçerli olmalidir.

Set Dosya = FSO.GetFile("Dosya Yolu")

Bu konunun ayrintilarini "FSO ile dosya islemleri" konusuna birakip geçiyoruz.


GetFileName

Verdiginiz bir string ifadesi içinde ki en son bilesenin uzantisiyla beraber ismini verir. Eger uzanti yoksa sadece ismini verir.
dosya ismini veriyor, uzantisini vermiyordu. GetFileName uzantisiyla beraber dosya ismini verir. Verdiginiz stringin geçerli bir yol ifadesi olmasi gerekmez. Bu yöntemde string üzerinde islem yapar.

FSO.GetFileName("Ifade")

<%
Response.Write FSO.GetFileName("C:Denemeindex.asp")
Response.Write FSO.GetFileName("C:Denemeindex.asp")
Response.Write FSO.GetFileName("sf4574356754index.asp")
%>

Çiktilari "index.asp" olur.

<%
Response.Write FSO.GetFileName("C:Denemeindex")
Response.Write FSO.GetFileName("C:Denemeindex")
Response.Write FSO.GetFileName("sf4574356754index")
%>

Çiktilari "index" olur.


GetFileVersion

Exe, dll gibi dosya versiyonu bilgisini tasiyan  dosyalarda dosyanin sürüm numarasini verir. Verilen dosya yolu ifadesi geçerli olmalidir. Eger yol geçerli degilse yada dosya sürüm bilgisi tasimiyorsa bos deger döner.

FSO.GetFileVersion("Dosya Yolu")

<%
Response.Write FSO.GetFileVersion("C:Program FilesAheadNeroAudioPluginMgr.dll")
%>

Benim sistemimde çiktisi "2.0.0.2" seklinde.

<%
Response.Write FSO.GetFileVersion("C:Program FilesAheadNero ero.exe")
%>

Çikti "5.5.9.9" seklinde.


GetFolder

Belirttiginiz bir klasör için üzerinde islemler yapilabilen bir klasör nesnesi olusturur. Klasör geçerli olmalidir.

Set Klasor = FSO.GetFolder("Klasör Yolu")

Bu konunun ayrintilarini "FSO ile klasör islemleri" konusuna birakip geçiyoruz.


GetParentFolderName

Verdiginiz bir yol ifadesi için o yolun en son dosyasinin veya klasörünün içinde bulundugu klasör ismini döndürür. Yol ifadesinin geçerli olmasi gerekmez.

FSO.GetParentFolderName("Yol")

<%
Response.Write FSO.GetParentFolderName("C:SaCReDSeeRindex.asp")
Response.Write FSO.GetParentFolderName("C:SaCReDSeeR/index.xghdmhgghf")
%>
Her ikisinin de çiktisi "C:SaCReDSeeR" olur.

<%
Response.Write FSO.GetParentFolderName("C:SaCReDSeeR")
Response.Write FSO.GetParentFolderName("C:SaCReDSeeR")
Response.Write FSO.GetParentFolderName("C:SaCReDSeeR/")
%>
Üçünün de çiktisi "C:SaCReD" olur.

<%
Response.Write FSO.GetParentFolderName("GiresunSaCReDSeeR")
Response.Write FSO.GetParentFolderName("GiresunSaCReDSeeR")
%>

Çiktilari "GiresunSaCReD" olur.

Siz bu sekilde bir yol ifadesi için ana dizini aldiginiz gibi GetFile ile olusturulmus dosya nesnesinin veya GetFolder ile olusturulmus klasör nesnesinin ParentFolder özelligi ile de ana dizini alabilirsiniz. Ama bu yöntemde yol ifadesi dolayisiyla dosya veya klasör geçerli, yani var olmalidir.

<%
Set Dosya = FSO.GetFile("C:DenemeDeneme.txt")
Response.Write Dosya.ParentFolder
%>
Çiktisi "C:Deneme" olur.

<%
Set Klasor = FSO.GetFolder("C:DenemeSaCReD")
Response.Write Klasor.ParentFolder
%>
Çiktisi "C:Deneme" olur.


GetSpecialFolder

Vereceginiz 0,1 veya 2 sayisi için Windows özel dizinlerini döndürür. Bu üç sayi disinda argüman kabul etmez.

FSO.GetSpecialFolder(sayi)

0 = "C:WINDOWS"
1 = "C:WINDOWSsystem32"
2 = "C:WINDOWSTemp"

<%
Response.Write FSO.GetSpecialFolder(1)
%>
Çiktisi "C:WINDOWSsystem32" olur.


GetTempName

Geçici bir dosya için .tmp uzantili rastgele bir dosya adi üretir. Dosya ismi basinda "rad" sözcügü bulunur. Bu rastgele uzantili dosya olusturulmaz. Sadece dosya adi üretir. Siz bu ismi CreateTextFile ile dosya olustururken kullanabilirsiniz.

FSO.GetTempName

<%
Response.Write FSO.GetTempName
%>

Çiktisi "A9932" kismi her seferinde degismek kaydiyla "radA9932.tmp" gibi olur.


MoveFile

Verdiginiz bir veya daha fazla dosyayi belirttiginiz klasöre tasir.

FSO.MoveFile KaynakDosya(lar), Hedef

Kaynak Dosya tek veya joker karakterle belirlediginiz birden çok dosya, Hedef ise bunlarin tasinacagi klasördür. Eger tasimaya çalistiginiz dosyalar hedef klasörde zaten var ise hata verir ve tasinmaz.

<%
FSO.MoveFile "C:*.*", "C:Deneme"
’veya
FSO.MoveFile "C:*.*", "C:Deneme"
%>
Her iki kodda C sürücüsündeki tüm dosyalari Deneme klasörüne tasir.

<%
FSO.MoveFile "C:deneme.txt", "C:Deneme"
%>
C sürücüsündeki "deneme.txt" dosyasini "Deneme" klasörüne ayni isimle tasir.

<%
FSO.MoveFile "C:deneme.txt", "C:Denemeindex.asp"
%>
C sürücüsündeki "deneme.txt" dosyasini "Deneme" klasörüne index.asp ismiyle tasir. Yani farkli kaydetmis olursunuz.

konusunda okudugunuz gibi joker karakterleri kullanarak tasinacak dosyalar için farkli seçenekler olusturabilirsiniz.


MoveFolder

Bir veya daha çok klasörü vereceginiz bir hedef klasöre tasir.

FSO.MoveFolder TasinacakKlasör(ler), Hedef

Bu kodun kullaniminda birkaç küçük ayrinti var. Örneklerle görelim.

<%
FSO.MoveFolder "C:Denemea", "C:Deneme"
%>

a klasörünü ayni dizindeki b klasörü içine tasir. Bu islem için tasinacak kaynak klasörü belirtirken sonuna slash() koymuyoruz. Koyarsak yol bulunamadi hatasi verir. Tasinacak klasör için bu sinirlama yok. "C:Deneme" yada "C:Deneme" seklinde yazabilirsiniz.

<%
FSO.MoveFolder "C:Denemea*", "C:Deneme"
%>

a klasörü içindeki alt klasörleri b klasörüne tasir. a klasörünün kendisi ve içindeki dosyalari ise tasimaz. Tabi yine kaynak klasörü belirtirken sonuna slash koymuyoruz.

 

FileSystemObject ile Sürücü Islemleri

FSO ile sürücü islemleri FSO.GetDrive metodu ile elde edilmis olan sürücü nesnesi yada FSO.Drives yöntemi ile olusturulmus olan sürücü koleksiyonunun bir elemani olan sürücü nesnesi üzerinden yürür.
Örneklersek;

Set Surucu = FSO.GetDrive("C")

Bu GetDrive yöntemiyle olusturulmus bir sürücü nesnesidir.

Set Suruculer = FSO.Drives

For Each Surucu in Suruculer
    Surucu islemleri
Next


Buda GetDrive ile elde edilmis olan sürücü nesnesidir.

Burada FSO gördügünüz her yerde FSO isimli bir FileSystemObject nesnesi daha önceden olusturulmus demektir.

<%
Set FSO = CreateObject("Scripting.FileSystemObject")
%>

GetDrive ile sürücü nesnesi olustururken sürücü ismini sadece sürücünün ismini içerdigi sürece istediginiz gibi yazabilirsiniz.

Set Surucu = FSO.GetDrive("C")
Set Surucu = FSO.GetDrive("C:")
Set Surucu = FSO.GetDrive("C:")
Set Surucu = FSO.GetDrive("C:/")

Yukaridaki yazim sekillerinin hepsi geçerlidir.



 

 
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©