Uyarılar :
- Bu sayfada yazılanlar yeniden yayınlanamaz.
- Bu örnek ders sırasındaki anlatımlardan derlenmiştir. Özellikle bir makale şeklinde yazılmamıştır. Bilgilerde eksiklikler bulunabilir.
Örnek :
<%@ Page Language="vb" %>
<!-- Dosyalama ile ilgili sınıfları kullanmak için aşağıdaki System.IO isim alanını
burada bildiriyoruz. Bir isim alanı burada bildirilmediğinde bu isim alanında bulunan
bir sınıfı (Örneğin System.IO isim alanındaki StreamWriter sınıfını) kullanmamız
gerektiğinde sınıf adını bulunduğu isim alanı ile beraber yazmamız gerekir (Örneğin
Dim sw As System.IO.StreamWriter) -->
<%@ Import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object o, EventArgs e)
{
/*
.NET Framework'da dosya oluşturmak için bir çok sınıf mevcuttur. Bunlardan
StreamWriter sınıfı ile aşağıdaki şekilde bir dosya (veya akış / stream*)
oluşturabiliriz. Bu sınıfın birkaç kullanım şekli vardır. Kullanılan dilin
karakterleri ile ilgili sorun çıkmaması için aşağıdaki şekli tercih edebiliriz.
Bu kullanım şeklinde, birinci parametre oluşturulacak sayfanın
mutlak adresi / yolu (path) ve adı, ikinci parametre dosya mevcut ise ekleme
yapılıp yapılmayacağı (false = yeniden oluştur / yoksa oluştur,
true = varsa ekle / yoksa oluştur), üçüncü parametre ise dil kodlamasıdır.
*/
/*
Server.MapPath, verilen göreceli adresin (bu sayfanın konumuna göre
vereceğimiz adresin) mutlak adresini döndürür. Mutlak adres, yerel bir
(Windows yüklü) bilgisayar veya sunucu için sürücü harfi ile başlar.
Yani bizim abc/def.txt şeklinde verdiğimiz bir göreceli adresin
(busayfanın bulunduğu klasördeki abc klasörünün içindeki
def.txt isimli dosya) mutlak adresi, sitemizin bulunduğu klasörün
d:\siteler\benimsite olduğunu kabul edersek
c:\siteler\benimsite\abc\def.txt'dir.
*/
/*
Örneğimizde kullandığımız ~ (tilde) işareti sunucudaki web sitemizin
bulunduğu ana klasöre işaret eder. Sitemizin sunucuda bulunduğu klasörün
d:\siteler\benimsite olduğunu kabul edersek, aşağıdaki Server.MapPath("~/deneme.htm")
ifadesi bize "d:\siteler\benimsite\deneme.htm" şeklinde bir mutlak adres döndürecektir.
*/
/*
UTF8 kodlama evrensel kodlama (unicode) biçimlerinden birisidir. Bu kodlama ile
Türkçe karakterler dahil bir çok özel karakter ve çeşitli dillerin karakterleri
görüntülenebilir veya dosyaya yazılabilir. Sadece Türkçe karakterler ve diğer
latin karakterleri doğru biçimde görüntülenmek isteniyorsa buraya
System.Text.Encoding.GetEncoding("iso-8859-9") yazılabilir. Ancak UTF8 tavsiye edilir.
*/
StreamWriter sw = new StreamWriter(
Server.MapPath("~/deneme.htm"),
false,
System.Text.Encoding.UTF8
);
/*
StreamWriter sınıfının WriteLine metodu, dosyaya (veya akışa), parametre olarak
bildirilen değeri (burada karakter katarı / karakter dizesi / string) sonuna
bir satır sonu işareti ekleyerek yazdırır. Dolayısıyla dosyamıza bir satır
eklemiş oluruz. Satır eklemeden yazdırmak için Write metodu kullanılabilir.
*/
/*
Örneğimizde dosyamıza HTML etiketlerinden oluşan metinleri satırlar halinde ekliyor
ve bir HTML belgesi oluşturuyoruz.
*/
sw.WriteLine("<html>");
sw.WriteLine("<head><title>Deneme Sayfası</title></head>");
sw.WriteLine("<body>");
sw.WriteLine("<b>HTML metni</b>");
sw.WriteLine("</body>");
sw.WriteLine("</html>");
/*
StreamWriter sınıfının Flush metodu, arabellekte bekletilen ve akışa
(örneğimizde oluşturulacak dosya) gönderilecek verilerin ara bellekten
boşaltılması için kullanılır. Bu da garanti olmasada yaz dediklerimizin
fiziksel olarak dosyaya bir an önce yazılmasını sağlar.
*/
sw.Flush();
/*
Açtığımız akışı veya dosyayı işimiz bitince hemen kapatmalıyız.
*/
sw.Close();
ltMesaj.Text = "<h3>\"" +
Server.MapPath("~/deneme.htm") +
"\" dosyası oluşturuldu...</h3>";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Literal id="ltMesaj" runat="server" EnableViewState="false" />
</form>
</body>
</html>
<!--
Akış (stream), bilgisayarda ağdan (yerel ağ, Internet vs.) veya fiziksel bir
sürücüden gelen (hafızaya alınan bir dosya) bit veya bayt silsilelerine
verilen isimdir. Bu silsileler çoğunlukla eş zamanlı değildir ve çok çeşitli
kaynaklardan (diskten, ağdan, tarayıcıdan ...) gelebilir veya bu kaynaklara gidebilir.
-->