ASP - FileSystemObject (FSO)

ASP ile FileSystemObject(FSO) kullanarak yapabileceklerimizi görelim

Merhaba arkdaşlar, bu dersimizde ASP ile FSO nesnesini işliyeceğiz.


Ön Bilgi:
Server.MapPath : Sunucu üzerindeki tam adresi verir.(Ör: Z:usersarkeologpublic...)
vbCrLf : Satır Atlamak için kullanılır (enter tuşuyla inilmiş gibi)

FSO Property ve Metodları:

CreateTextFile : Metin dosyası oluşturur
OpenTextFile : Metin Dosyası Okur
FileExists : Dosyanın varlığını kontrol eder (true/false)
FolderExists : Klasörün varlığını kontrol eder (true/false)
GetFile : Dosya üzerinde işlem yapmaya yarar
GetFolder : Klasör üzerinde işlem yapmaya yarar
DeleteFile : Dosya silmeye yarar
DeleteFolder : Klasör silmeye yarar
Write : Dosyaya veri yazar
WriteLine : Dosyaya veriyi satır olarak yazar (vbCrLf kullanmadan)
ReadLine : Dosyadan satır okur
ReadAll : Tüm dosyayı okur
AtEndOfStream : Dosyanın boş olması veya imlecin en sona konumlanması durumunda bu değer TRUE olur dosyada veri varsa FALSE'dir.
FSO kullanımı :

Set fso = Server.CreateObject("SCRIPTING.FileSystemObject")


Bu şekilde fso objemizi tanımlamış olduk.
FSO ile metin belgesi oluşturalım :

Set fso = Server.CreateObject("SCRIPTING.FileSystemObject")

Set q = fso.CreateTextFile(Server.MapPath("deneme.txt"))

q.Write("Bu bir deneme dosyasıdır." & vbCrLf & "Tarih :" & Date)

q.WriteLine("*** Arkeolog NET ***")


FSO ile bu dosyamızı okuyalım:

Set qq = fso.OpenTextFile(Server.MapPath("deneme.txt"))

If qq.AtEndOfStream Then

icerik = ""

Else

icerik = qq.ReadAll

End If

Response.Write "<textarea cols=60 rows=120>" & icerik & "</textarea>"


FSO ile dosya silme :

If fso.FileExists(Server.MapPath("deneme.txt")) Then

fso.DeleteFile(Server.MapPath("deneme.txt"))

End If


FSO ile dosyanın adını öğrenme
Bu tarz işlemler için bazı fonksiyonları açıklayalım:
GetFileName : Uzun bir yol içinden ismi alır. (ör : C:VerilerABdeneme.txt -> içinden sadece deneme.txt alır.)
GetExtensionName : Uzantıyı alır (exe,gif,asp,php,css,txt .. v.s.)

If fso.FileExists(Server.MapPath("deneme.txt")) Then

Set dosya = fso.GetFile(Server.MapPath("deneme.txt"))

dosya_ad = dosya.Name

dosya_boyut = dosya.Size

'Adını değiştirmek için dosya.Name = "yeni_ad.txt" yazabilirsiniz

Response.Write "Dosya Adı : " & dosya_ad & "(" & dosya_boyut & " byte)"

End If



FSO ile klasör oluşturma

Set klasor = fso.CreateFolder(Server.MapPath("yeni klasör"))



FSO ile bir klasörün içindeki klasörleri ve dosyaları listeleme

Set ks = fso.GetFolder(Server.MapPath("klasörün adı"))

For Each klasor In ks.SubFolders

Response.Write 

Next

'Dosyaları listeleme

For Each dosya In ks.Files

Response.Write GetFileName(dosya) & "<br>"

Next


Şimdilik bu kadar, FSO hakkındaki sorularınızı yoruma yazabilirsiniz.
Kolay gelsin
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

en son kodda eksik bir yer var : [code]For Each klasor In ks.SubFolders Response.Write GetFolderName(klasor) Next[/code]
peki resimlere rondom name nasıl vericez. örneğin resim1.jpg yi nasıl 20052011110145resim1.jpg yapabiliriz. [code]<% Set Yukle = New DosyaYukleme Yol = Server.Mappath("../upload")&"" DosyaIsmi = Yukle.FileName ("dosya") Set FSO = Server.CreateObject("Scripting.FileSystemObject") Set YeniDosya = FSO.CreateTextFile(Yol & DosyaIsmi) For i = 1 To LenB(Yukle.Value("dosya")) YeniDosya.Write Chr(AscB(MidB(Yukle.Value("dosya"), i, 1))) Next YeniDosya.Close Set YeniDosya = Nothing Set FSO = Nothing Set Yukle = Nothing %> <% urunl=request.querystring("id") %> <!--#Include file = "conn.asp" --> <% Set conn=Server.CreateObject("Adodb.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("veritabani/"&veritabani&"") imbat="insert into resimler (urunid,resim_adi) values ("&urunl&",'"&DosyaIsmi&"')" conn.execute imbat response.redirect "urunresimyukle.asp" %>[/code]
DosyaIsmi = Yol & Fix(Rnd()*99999999) & ".jpg"
serverin Persits.Upload destekliyorsa onu kullanabilirsin
persist bileşeni kurulu ama yazmış olduğun DosyaIsmi = Yol & Fix(Rnd()*99999999) & ".jpg" denklemi eklememe rağmen olmadı malesef.
Set YeniDosya = FSO.CreateTextFile(Yol & DosyaIsmi) bu kodu : [code] isim_ver: Randomize() dosya_ad = Yol & Fix(Rnd()*99999999) & ".jpg" If Not fso.FileExists(dosya_ad) Then Set YeniDosya = FSO.CreateTextFile(Fix(Rnd()*99999999) & ".jpg") Else GoTo isim_ver End If [/code] şeklinde dene
Listeleme yaparken sıralamayı alfabetik a-z ye doğru listeliyor. Burada farklı sıralama seçeneklerini nasıl kullanabiliriz. Teşekkürler..

Yukarı Git