Dosya Sistemi Nesneleri ( File System Object )

Başlatan yakamoz, 25 Ocak , 2011, 21:39:25

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

yakamoz

[size=0pt]Merhaba arkadaslar bu makalemizde FSO (File System Object) nesnesi ile neler yapabilecegimizi ve nasil kullanacagimizi ögrenecegiz kisaca FSO (File System Object) nesnesi'nin destekledigi özellikler;[/size]
[size=0pt]CopyFolder
MoveFile
MoveFolder
CreateTextFile
OpenTextFile
DeleteFile
DeleteFolder
DriveExist
FileExist
FolderExist
[/size]
[size=0pt][/size]
[size=0pt]FSO (File System Object) nesnesinin özelliklerini anlatmaya baslayalim;[/size]
[size=0pt]Copy File[/size]
[size=0pt]Bu nesne ile Server üzerinde dosya yaratiriz;
 
[/size]
<% OPTION EXPLICIT %>
<%
Dim Kopyala
'Kopyala isimli bir degisken yaratiyoruz.
Set Kopyala=CreateObject ("Scripting.FileSystemObject")
'Bu satirda kullanacagimiz nesne'nin fso oldugunu belirtiyoruz.
Kopyala.CopyFile "c:\inetpub\wwwroot\asp\dosya.txt", "c:\inetpub\wwwroot\nedir\", true
'Bu satirda dosyayi nereye kopyalayacagimizi gösteriyoruz
%>

[size=0pt]
[/color]Kodlari inceleyelim;
"Kopyala" isimli bir degisken yaratmistik. Ve bu degiskeni FileSystemObject nesnesinde kullanacagimizi belirlemistik.
Set Kopyala=CreateObject ("Scripting.FileSystemObject")
"Asp" dizini olarak yerini belirledigimiz dosyayi kopyaliyoruz ve "nedir" dizinine yapistiriyoruz.
Kopyala.CopyFile "c:\inetpub\wwwroot\asp\dosya.txt", "c:\inetpub\wwwroot\nedir\", true
Nasil yapacagimizi ögrendik fakat dikkat etmemiz gereken bir nokta var gösterdiginiz dizinin daha önceden yaratilmis olmasi yani bizim verdigimiz örnekteki "nedir" dizini server da yoksa hata mesaji ile karsilasmaniz olasidir.
[/size]
 
[size=0pt][/color]Move File[/size]

Bu nesne ile Server'da bulunan bir dosyayi baska bir dizine tasiyabiliriz

<% OPTION EXPLICIT %>
<%
Dim Tasi
'Tasi isimli bir degisken yaratiyoruz.
Set Tasi=Server.CreateObject ("Scripting.FileSystemObject")
'Bu satirda kullanacagimiz nesne'nin fso oldugunu belirtiyoruz.
Tasi.MoveFile "C:\inetpub\wwwroot\asp\Deneme.txt","C:\inetpub\wwwroot\nedir\"
'Bu satirda seçtigimiz klasördeki içerigi alip, 'gösterdigimiz dizine tasiyoruz
Set Tasi=Nothing
%>
[size=0pt]

Bu kodu yazip çalistirirsaniz, önceden belirledigimiz dosya kontrol edilir eger orada bulunursa dosyayi alarak yine önceden belirlediginiz dizine tasir.

Ilk önce Tasi diye bir degisken yaratiyoruz, ve FileSystemObject nesnesinde kullanacagimizi gösteriyoruz.
Set Tasi=CreateObject ("Scripting.FileSystemObject")
Daha sonra, MoveFile isimli objemizi kullanarak dosyamizi önceden belirttigimiz dizine tasiyoruz.
Tasima.MoveFile "C:\inetpub\wwwroot\asp\Deneme.txt","C:\inetpub\wwwroot\nedir\"

Kodlarimizin sonuna geldigimizi belirtiyoruz
Set Tasi=Nothing
 
[/size]
[size=0pt][/color]MoveFolder[/size][size=0pt]

Herhangi bir klasörü belirlediginiz bir klasöre tasimimizi saglar.
[/size]
<% OPTION EXPLICIT %>

<%
Dim Tasi
'Tasi diye bir degisken yaratiyoruz.
Set Tasi=CreateObject ("Scripting.FileSystemObject")
'Bu satirda kullanacagimiz nesne'nin fso oldugunu belirtiyoruz.
Tasi.MoveFolder "c:\Inetpub\wwwroot\asp", "c:\Inetpub\wwwroot\nedir\", true
'Bu satirda seçtigimiz klasördeki içerigi alip, 'gösterdigimiz dizine tasiyoruz
%>
[size=0pt]

[/color]Kodlari inceleyelim;
Önce Tasi diye bir degisken yarattik. Ve bu degiskeni FileSystemObject nesnesinde kullanacagimizi belirledik.
Set Tasi=CreateObject ("Scripting.FileSystemObject")

Esitledikten sonra, tasinacak klasörün içerigini kopyaliyoruz ve gösterdigimiz dizine yapistiriyoruz...
Tasi.MoveFolder "c:\Inetpub\wwwroot\asp", "c:\Inetpub\wwwroot\nedir\", true

 
[/size]
[size=0pt][/color]CreateTextFile[/size]

Istediginiz dizinde adini belirleyebileceginiz, içine yazi da yazabilecegimiz bir text dosyasi yaratmamizi saglar. Verecegimiz örnekte yaratilacak text dosyasinin uzantisini .txt olarak belirledik siz bunu .asp,.inc,.aspx vs.. olarak ta yapabilirsiniz hatta yarattiginiz dosyanin içine asp kodlari da yazdirabilirsiniz.

<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Dosya, Yazi
'Dosya ve Yazi diye iki degisken yaratiyoruz.
Set Dosya=CreateObject ("Scripting.FileSystemObject")
'Bu satirda FileSystemObject Nesnemizi Kullaniyoruz.
Set Yazi = Dosya.CreateTextFile ("c:\inetpub\wwwroot\asp\Deneme.txt", true)
Yazi.WriteLine ("ASPnedir?com - deneme mesaji.")
Yazi.WriteLine ("ASP ile text dosyasi yazdiriyoruz")
Yazi.Close
%>


Bu kodu yazip çalistirirsaniz, belirlediginiz dizinde Deneme.txt isminde bir yazi dosyasi yaratilir. Ve içine bizim yazdirdigimiz mesajlar yazilir.

[/color]Kodlari inceleyelim;
Ilk önce Dosya ve Yazi diye iki tane degisken yaratmistik. Ve Dosya degiskenini FSO nesnesine esitledik.

Set Dosya=CreateObject ("Scripting.FileSystemObject") Set Yazi = Dosya.CreateTextFile ("c:\inetpub\wwwroot\aspnedir\Deneme.txt", true)

Bu satirimizda da dosyanin yaratilacagi yolu ve ismini belirtiyoruz.
Yazi.WriteLine ("ASPnedir?com - deneme mesaji.")
Yazi.WriteLine ("ASP ile text dosyasi yazdiriyoruz")

Bu satirlar da dosyamizin içine görünecek yaziyi giriyoruz.
Kodlari denerken dikkat etmeniz gereken klasörün yolunu dogru vermektir.




[/color]OpenTextFile

Bu nesnemiz server da belirledigimiz bir klasörün içerigini baska bir dizine tasimamizi saglar.
Dosyayi açtiktan sonra, belirli mod'lar ile yazi üzerinde farkli islemler yapabiliriz.

Mesela 1 degeri, dosyanin salt okunur olmasini saglar.
2 degeri, açilan dosyanin üzerine yazilmasini saglar. Elbetteki yeni yazdiklariniz
eski kayitlari siler. 8 degeri dosyanin yeniden yazilabilir olmasini saglar.
Tabi ki eskiden yazilan kayitlar da korunur. Yani yeni yazilanlarla degistirilmez.


<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Dosya, Yazi
'Dosya ve Yazi isimli iki tane degisken yaratiyoruz.
Set Dosya=Server.CreateObject ("Scripting.FileSystemObject")
'Bu satirda kullanacagimiz nesne'nin fso oldugunu belirtiyoruz.
Set Yazi=Dosya.OpenTextFile ("c:\inetpub\wwwroot\aspnedir\deneme.txt", 1)
'Dosya'nin nerede oldugunu gösteriyoruz
Response.Write (Yazi.ReadAll)

Yazi.close
Set Yazi=Nothing
Set Dosya=Nothing
%>
[size=0pt]
 
[/size]
[size=0pt][/color]Kodlari inceleyelim;[/size][size=0pt]
Bu kodlarda belirledigimiz dosyaya bakilir ve varsa içindeki bilgiler
ReadAll(Tümünü Oku) metodu ile islenir...
Önce "Dosya" ve "Yazi" diye iki tane degisken yaratiyoruz. Ve FSO'ya esitliyoruz.

Set Dosya=Server.CreateObject ("Scripting.FileSystemObject")

Daha sonra belirledigimiz yazi dosyasini açalim 1 degeri ile sadece okunmasi için açildigini onayliyalim.

Set Yazi=Dosya.OpenTextFile("c:\inetpub\wwwroot\aspnedir\deneme.txt", 1)

"Yazi" isimli degiskenimizin bulundurdugu degeri ReadAll(Tümünü Oku) komutunu kullanarak
hepsinin okunmasini istiyoruz, ve Browser'da yazdiriyoruz.

Response.Write (Yazi.ReadAll)

Baglantilari kapatiyoruz.
Yazi.close
Set Yazi=Nothing
Set Dosya=Nothing


[/color]OpenTextFile nesnesinin içerisinde 7 adet metod vardir.


[/color]Read
[/size]
[size=0pt]Read modu ile önceden belirledigimiz dosyanin içerisindeki karakterleri okuruz.[/size]
<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Dosya, Yazi
Set Dosya=Server.CreateObject ("Scripting.FileSystemObject")
Set Yazi=Dosya.OpenTextFile ("c:\inetpub\wwwroot\aspnedir\deneme.txt", 1)
Response.Write (Yazi.read(10))
'deneme isimli dosyanin içerisindeki ilk 10 karakteri okumasini istiyoruz.
Yazi.close
Set Yazi=Nothing
Set Dosya=Nothing
%>
[size=0pt]



[/color]ReadLine
[/size]
Bu metot'un "read mode" ile arasindaki fark sadece ilk satiri okumasidir.

<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Dosya, Yazi
Set Dosya=Server.CreateObject ("Scripting.FileSystemObject")
Set Yazi=Dosya.OpenTextFile ("c:\inetpub\wwwroot\aspnedir\deneme.txt", 1)

Response.Write (Yazi.ReadLine)
'Dosyanin ilk satirini okumasini istiyoruz.

Yazi.close
Set Yazi=Nothing
Set Dosya=Nothing
%>
[size=0pt]


[/color]Skip
[/size]
Önceden belirlediginiz sayiyi geçer ve daha sonrasinda yazilan tüm karakterleri okur.



<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Dosya, Yazi
Set Dosya=Server.CreateObject ("Scripting.FileSystemObject")
Set Yazi=Dosya.OpenTextFile ("c:\inetpub\wwwroot\aspnedir\deneme.txt", 1)

Yazi.Skip(6)
Response.Write (Yazi.ReadAll)
'Burada verdigimiz "ReadAll" komutu yerine ReadLine komutunu da kullanabilirsiniz,"ReadLine" olarak kullandiginizda geriye kalan satiri okur tabi ki metnin geri kalanini okumaz.

Yazi.close
Set Yazi=Nothing
Set Dosya=Nothing
%>


[size=0pt]

[/color]SkipLine
[/size]
Bu komut ile yazdigimiz metnin ilk satiri harici tüm metni okur.

<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Dosya, Yazi
Set Dosya=Server.CreateObject ("Scripting.FileSystemObject")
Set Yazi=Dosya.OpenTextFile ("c:\inetpub\wwwroot\aspnedir\deneme.txt", 1)

Yazi.SkipLine(2)
'Buradaki komut ile 2. satirdan sonra yazilan metinin tümünü okur.Isterseniz "ReadAll" veya  "ReadLine" komutunu da kullanabilirsiniz...
Response.Write (Yazi.ReadAll)

Yazi.close
Set Yazi=Nothing
Set Dosya=Nothing
%>


Diger bir konuda formdan gelen verileri bir text dosyasina yazdirmak.
Burada ayni zamanda "Request" nesnesi ile bir formdan gelen veriyi bir text dosyaya nasil yazdiracagimizi ögrenecegiz.


<%@ Language=VBScript Codepage="1254"%>
<%OPTION EXPLICIT%>

<html>
<head>
<title>ASPnedir?com - "File system object" ile verileri yazdirma</title>
</head>

<form action="yazdir.asp" method="post" >
Yazdirmak istediginiz veri?:
<input type="text" name="veri">

<p>
<input type="submit" VALUE="Kaydet">
</form>

<%
Dim Form, Kaydet, veri

Set Form=Server.CreateObject ("Scripting.FileSystemObject")
Set Kaydet=Form.OpenTextFile (Server.Mappath ("aspnedir.txt"),8)
'Burada yazdiracagimiz dosyanin bulundugu klasörü belirliyoruz, ve 8 modu ile dosyamiza okuma ve yazma izni veriyoruz

veri=Request.Form ("veri")
'RequestForm Metodu ile gelen bilgileri aliyoruz.

Kaydet.WriteLine veri
'Kaydet isimli degiskenimiz ve WriteLine metodu ile dosyaya gelen verileri kaydediyoruz.
Response.Write "<b>"& veri&"</b><br>"

Response.Write "Verdiginiz bilgiler basari ile kaydedilmistir"
'Yapilan islemim basarili olduguna dair mesaj yaziyoruz

Kaydet.Close
Set Form=Nothing
Set Kaydet=Nothing
End If
'Sorgu biçimini ve baglantilarimizi kapatiyoruz
%>
</html>
[size=0pt]

 
[/size]
[size=0pt][/color]DeleteFile[/size]

Daha önceden belirledigimiz dosyayi silmemizi saglar.

<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Sil
'Sil isimli bir degisken yaratiyoruz.
Set Sil=CreateObject ("Scripting.FileSystemObject")
'Bu satirda FileSystemObject nesnemizi kullandigimizi belirliyoruz.
Sil.DeleteFile ("c:\inetpub\wwwroot\aspnedir\deneme.txt")
%>


Buradaki kodlar ile "aspnedir" dizindeki deneme.txt ismindeki dosyayi siliyoruz.

[/color]Kodlari inceleyelim;
Sil isimli degisken yaratiyoruz ve Sil degiskenini FileSystemObject nesnesine esitliyoruz.
Set Sil=CreateObject ("Scripting.FileSystemObject")
Bu satirla daha önceden bulundugunu dizini belirledigimiz dosyayi siliyoruz.
Sil.DeleteFile ("c:\inetpub\wwwroot\aspnedir\deneme.txt")


[/color]DeleteFolder

Belirledigimiz dizindeki herhangi bir klasörü silmemizi saglar.

<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Sil
'Sil isimli bir degisken yaratiyoruz.
Set Sil=CreateObject ("Scripting.FileSystemObject")
'Burada FileSystemObject nesnesini kullanacagimizi belirliyoruz.
Sil.DeleteFolder ("c:\inetpub\wwwroot\aspnedir\deneme")
%>
[size=0pt]

Buradaki kodlar "aspnedir" dizindeki "deneme" isimli klasörü siler.

[/color]Kodlari inceleyelim;
Önce Sil isimli bir degisken yaratmistik ve Sil degiskenini FileSystemObject nesnesindee
kullanacagimizi belirlemistik.
Set Sil=CreateObject ("Scripting.FileSystemObject")
Buradaki satirda yolunu gösterdigimiz dosyayi siliyoruz.
Sil.DeleteFolder ("c:\inetpub\wwwroot\aspnedir\deneme")
[/size]
[size=0pt][/color]
DriveExist
[/size]


Server da belirledigimiz isimde bir sürücü olup olmadigini kontrol eder.

<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Kontrol
'Kontrol isimli degisken yaratiyoruz.
Set Kontrol=Server.CreateObject("Scripting.FileSystemObject")
If Kontrol.DriveExists ("D") = true then
Response.Write ("Bu bilgisayarda D sürücüsü bulunmaktadir.")

Else
Response.Write ("Bu bilgisayarda D sürücüsü bulunmamaktadir.")
End If
Set Kontrol=Nothing
%>

[size=0pt] [/color]Kodlari inceleyelim;
Önce Kontrol diye bir degisken yaratiyoruz, ve FileSystemObject'e esitliyoruz.

Set Kontrol=CreateObject ("Scripting.FileSystemObject")

Burada FSO haricinde ASP programlama dilinde çok kullanilan "If" eger veya sayet anlaminda
kullanilan bir komutu kullaniyoruz yazilan komutlari daha rahat anliyabilmeniz için
türkçeye çevirmeyi ön gördüm;

If(eger,sayet) bilgisayarda D isimli bir sürücü true (dogruluk) o zaman (then)
islem tamamlandiktan sonra, Response.Write (Yanit ver)

If Kontrol.DriveExists ("D") = true then

Bu satirda DriveExists metodu ile "D" sürücüsünün olup olmadigini kontrol ediyoruz.

Response.Write ("Bu bilgisayarda D sürücüsü bulunmaktadir.") Else (yoksa,degilse)
Eger üstteki cevap True(dogru) degil de yanlis (False) olursa yanit olarak asagidaki mesaji verir.

Response.Write ("Bu bilgisayarda D sürücüsü bulunmamaktadir.")

Her zamanki gibi islemlerinizin sonunda çalismayi durdurup kapatiyoruz.
End If
Set Kontrol=Nothing

 
[/size]
[size=0pt][/color]FileExist[/size]

Bu nesnemiz server da belirlediginiz isimli bir dosya olup olmadigini kontrol eder.

<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Kontrol
'Kontrol isimli bir degisken yaratiyoruz.
Set Kontrol=Server.CreateObject("Scripting.FileSystemObject")
If Kontrol.FileExists ("c:\inetpub\wwwroot\aspnedir\deneme.txt") = true then
Response.Write ("deneme.txt dosyasi bulundu!")

Else
Response.Write ("deneme.txt dosyasi bulunamadi!")
End If
Set Kontrol=Nothing
%>
[size=0pt]

[/color]Kodlari inceleyelim;
Önce Kontrol isimli bir degisken yaratiyoruz, ve FileSystemObject'e esitliyoruz.

Set Kontrol=CreateObject ("Scripting.FileSystemObject")
If Kontrol.FileExists ("c:\inetpub\wwwroot\aspnedir\deneme.txt") = true then

Burada FileExists metoduyla deneme.txt adli dosyanin varligini kontrol ediyoruz.
Yine iyi kavramaniz için Türkçe ye çeviyorum;

If(eger,sayet) bilgisayarda deneme.txt isimli bir dosya true (dogruluk) o zaman (then)
islem tamamlandiktan sonra, Response.Write (Yanit ver)

Response.Write ("deneme.txt dosyasi bulundu!") Else (yoksa,degilse)
Eger üstteki cevap True(dogru) degil de yanlis (False) olursa yanit olarak asagidaki mesaji verir.

Response.Write ("deneme.txt dosyasi bulunamadi!")

End If
Set Kontrol=Nothing

çalismayi durdurup kapatiyoruz.
[/size]
 
[size=0pt][/color]FolderExist[/size]

Bu nesnemiz server da belirlediginiz isimli bir klasör olup olmadigini kontrol eder.

<% @ Language=VBScript Codepage=1254 %>
<% OPTION EXPLICIT %>

<%
Dim Kontrol
'Kontrol isimli bir degisken yaratiyoruz.
Set Kontrol=Server.CreateObject("Scripting.FileSystemObject")
If Kontrol.FolderExists ("c:\inetpub\wwwroot\aspnedir\deneme") = true then
Response.Write ("deneme klasörü bilgisayarda bulundu.")

Else
Response.Write ("deneme klasörü bilgisayarda bulunamadi!")
End If

Set Kontrol=Nothing
%>
[size=0pt]

[/color]Kodlari inceleyelim;
Önce Kontrol isimli bir degisken yaratiyoruz, ve FileSystemObject'e esitliyoruz.

Set Kontrol=CreateObject ("Scripting.FileSystemObject")
If Kontrol.FolderExists ("c:\inetpub\wwwroot\aspnedir\deneme") = true then

Burada FileExists metoduyla deneme isimli klasörün varligini kontrol ediyoruz.
Yine iyi kavramaniz için Türkçe ye çeviyorum;

If(eger,sayet) bilgisayarda deneme isimli bir klasör true (dogruluk) o zaman (then)
islem tamamlandiktan sonra, Response.Write (Yanit ver)

Response.Write ("deneme klasörü bulundu!") Else (yoksa,degilse)
Eger üstteki cevap True(dogru) degil de yanlis (False) olursa yanit olarak asagidaki mesaji verir.

Response.Write ("deneme klasörü bulunamadi!")

End If
Set Kontrol=Nothing

çalismayi durdurup kapatiyoruz.
[/size]
Zaman Geçmezde - Geçilmezde
İter Seni Arkandan,Düşürür Dizlerinin Üstüne
Kaçar Elinden Saniyeler,
Saçılır Yerlere

yakamoz

Zaman Geçmezde - Geçilmezde
İter Seni Arkandan,Düşürür Dizlerinin Üstüne
Kaçar Elinden Saniyeler,
Saçılır Yerlere