Son Haberler
Anasayfa / Yazılım / ASP.NET / FileStream Sınıfı

FileStream Sınıfı

FileStream, temel olarak disk üzerindeki dosyalar üzerinde Byte tabanlı kanal oluşturur. Hem binary hem de metin dosyalarında işlem yapmamıza olanak sağlar. Ancak işlemleri Byte tabanlı yaptığı için metin dosyalarında pek tercih edilmez. Stream sınıfının tüm özelliklerine sahiptir. FileStream nesnesi değişik şekillerde tanımlanabilir. En çok tanımlanma şekli;

FileStream fileStreamNesnem = new FileStream (string dosyaAdresim, FileMode DosyayıAçmaModum);

İlk parametre tanımlamamda da açıkca görüldüğü gibi dosyanın diskteki adresini ikinci parametre ise dosyanın ne amaçla açılacağını belirtir. FileMode?a tanımlanan değerle bu amaç belli edilir, buraya gelebilecek değerler :

Append : Yazma işlemini daha önceden yazılanların sonuna ekler. Belirtilen dosya yok ise yeni dosya oluşturulur.

Open : Belirtilen adresteki dosyayı açar ve yazma işlemi yapılacaksa daha önceki içeriğin üzerine yazılır.

OpenOrCreate : Dosya var ise onu açar yok ise yeni dosya oluşturur.
Truncate : Belirtilen dosyayı açar ve içeriği siler.

Create : Yeni bir dosya oluşturur, aynı isimde bir dosya var ise onu siler.

CreateNew : Yeni bir dosya oluşturur, eğer aynı isimde bir dosya var ise hata oluşur.

FileStream ile normalde bir dosya hem yazma hem de okuma için açılır, istenirse bu durum sınırlanabilir. FileStream nesnemi tanımlarken üçüncü bir parametre daha girip burada erişim türü belirtebilirim. Örneğin, Read sadece okuma amacı ile erişim sağlar, Write sadece yazma amacı ile erişim sağlar.
FileStream sınıfında FileShare parametresi ilede dosya üzerinde işlem yapılırken başka birisinin dosyayı ne şekilde paylaşabileceğini belirtir. FileShare değerleri ; Delete, Inheritable, None, Read, ReadWrite, Write değerleridir.

Üzerinde işlem yapılan bir dosya ile ilgili işlemler bittikten sonra mutlaka FileStream nesnemi kapatmam gerekir. Close() metotu ile bu işlemi yapabiliriz. Ayrıca FileStream sınıfını kullanabilmek için System.IO namespace eklenmelidir.

Şimdi FileStream classı ile şöyle basit bir örnek gerçekleştirelim. Bir WEB sitesi projesi oluşturalım ve içine bir adet Web form ekledikten sonra bu web forma bir adet buton ekleyelim. Butonın click eventinde aşağıdaki kodları yazacağım. Yapacağım işlem şu aslında. Butona tıkladığımda, projem içinde bir adet “deneme.txt” adında bir dosya oluşturulacak ve bu dosya içine de “İsmail GÜRSOY” yazdıracağım. Bunun için kodlarım butonun click eventinde şu şekilde :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button1_Click(object sender, EventArgs e)
    {

        //Öncelikle bir dosya oluşturmak için FileStream class kullanıyorum, bundan bir instance alıyorum
        //Daha sonra dosya oluşturulacağı için Create diyorum ve dosyanında erişim moduna yazma izni veriyorum,
        //çünkü içeriğine yazı ekleyeceğim.
        FileStream fs = new FileStream(Server.MapPath("deneme.txt"), FileMode.Create, FileAccess.Write);
        StreamWriter sw = new StreamWriter(fs);
        //içeriği yazıyorum
        sw.WriteLine("İsmail GÜRSOY");
        //instance aldığım nesnelerimi kapatmalıyım, gereksiz yere bellek işgali olmasın.
        sw.Close();
        fs.Close();
    }
}

Uygulamamı solution explorerda yer alan refresh butonu ile yeniliyorum. Bu sefer solution Explorer’da deneme.txt oluştuğunu görebiliriz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir