• Ana Sayfa
  • ASP.NET
  • ASP.NET Dosyalama İşlemleri (Dosya Oluşturma-Listeleme-Silme-Okuma-Taşıma-Öznitelik Atama)

ASP.NET Dosyalama İşlemleri (Dosya Oluşturma-Listeleme-Silme-Okuma-Taşıma-Öznitelik Atama)

 ASP.NET Dosyalama İşlemleri (Dosya Oluşturma-Listeleme-Silme-Okuma-Taşıma-Öznitelik Atama)
Okunuyor ASP.NET Dosyalama İşlemleri (Dosya Oluşturma-Listeleme-Silme-Okuma-Taşıma-Öznitelik Atama)

ASP.NET Dosyalama İşlemleri yapmamız mümkündür.Dosyalama işlerinde dosyaya bilgi yazma, silme, taşıma, kopyalama vb. işlemler yapılabilir. Dosyalama işlemlerini yapmadan önce kod sayfamıza using.System.IO uzayını eklememiz gerekir.

ASP.NET Dosyalama İşlemleri

Dosyayı Oluşturmak

Dosya işlemlerini yapabilmek için yine C# kodlarımıza System.IO kütüphanesini eklemeyi unutmuyoruz. C# kodlarıyla dosya oluşturma işlemlerinde File.Create() fonksiyonunu kullanırız. Örnek bir dosya oluşturalım;

        if (!File.Exits(c:\\dosya.txt))
        {
            File.Create(“c:\\dosya.txt”);
        }
        else
        {
            Response.Write(“belirtmiş olduğunuz dosya zaten var!”);
 

    }

İkinci olarak FileInfo() sınıfı ile de dosya oluşturulabilir. Bu sınıfa da kısa bir örnek verelim.

FileInfo fi = new FileInfo(FilePath);
        if (!fi.Exists)
        {
            fi.Create(“c:\\dosya.txt”);
        }

Dosyalamada dosyanın özelliklerine erişebiliriz. Bunu oluşturduğumuz fileinfo sınıfı örneğinde gösterelim.

fi.Extension //dosya uzantısını verir
fi.CreationTime //dosyanın oluşturulma tarihini verir
fi.DirectoryName //dosyanın bulunduğu klasörün path ini verir
fi.FullName //dosyanın adını verir
fi.Name //dosya adını uzantısı ile birlikte verir

 

Dosya bilgilerini görüntüleme işlemlerinde Html bloğunda dosya bilgilerini görüntülemek için Listbox nesnesi ekliyoruz.

HTML BLOĞU

     <div>
    
        <asp:ListBox ID="ListBox1" runat="server" Height="84px" Width="586px"></asp:ListBox>
    
    </div>

Listbox ve butonumuzu nesnemizi sürükle-bırak yöntemiyle webformumuza eklememiz durumunda kod kendiliğinden oluşacaktır. 🙂

      Ardından  bilgileri gösterebilmemiz için gerekli kod bloğunu yazıyoruz.

KOD BLOĞU(form load’a yazdık)

string uygulamayolu = Request.PhysicalApplicationPath;
        string dosyayolu = uygulamayolu + "Dosya.txt";
        FileInfo dosya = new FileInfo(dosyayolu);
        ListBox1.Items.Add("Dosya Tipi: " + dosya.Attributes);
        ListBox1.Items.Add("Oluşturulma Tarihi: " + dosya.CreationTime.ToString());
ListBox1.Items.Add("Oluşturulma Tarihi Dünya Saatine Göre " +         dosya.CreationTimeUtc.ToString());
        ListBox1.Items.Add("Bulunduğu Klasör: " + dosya.DirectoryName);
        ListBox1.Items.Add("Dosya Var Mı: " + dosya.Exists.ToString());
        ListBox1.Items.Add("Uzantısı: " + dosya.Extension);
        ListBox1.Items.Add("Dosya Yolu: " + dosya.FullName);
        ListBox1.Items.Add("Salt Okunur Mu :" + dosya.IsReadOnly);
        ListBox1.Items.Add("Dosyaya son erişim tarihi :" + dosya.LastAccessTime.ToString());
        ListBox1.Items.Add("Dosyaya son erişim tarihi genel saat:" + dosya.LastAccessTimeUtc);
        ListBox1.Items.Add("En son değişiklik ne zaman yapıldı:" + dosya.LastWriteTime.ToString());
 ListBox1.Items.Add("En son değişiklik zamanı genel saat:" +   dosya.LastWriteTimeUtc.ToString());
       ListBox1.Items.Add("Dosya Adı:" + dosya.Name);

EKRAN ÇIKTISI

       Biraz önce oluşturduğumuz dosyanın bilgilerini türünü oluştuğu süreyi hepsinin bilgisini çekerek listbox’a listeledik.

Dosya okuma Dosya yazma

ASP.NET Dosyalama İşlemleri Dosya içine veri yazmak için genelde StreamWriter nesnesi işimizi görür.StreamWriter nesnesi ile string,int,char vs.. her tipde veriyi yazabiliriz.

StreamWriter sw = new StreamWriter(ExamplesPath);
        sw.WriteLine(21);
        sw.WriteLine("String yazı");
        sw.WriteLine(true);
        sw.Close();  //işimiz bitince dosyayı kapatıyoruz

 

Dosya okuma işlemi için ise StreamReader sınıfından faydalanabiliriz.StreadReader sınıfı ile bütün dosyayı 1 defada okuyabileceğimiz gibi satır satır veya istediğimiz byte kadar da okuyabiliriz.

StreamReader reader = new StreamReader(Path);
        string FileString = reader.ReadToEnd(); //bütün dosyayı 1 defada okuyoruz.
        reader.Close();
        reader.Dispose();
 

Dosyayı satır satır okumak için;

StreamReader reader = new StreamReader(Path);
        while (!reader.EndOfStream)  //Dosya sonuna gelindiğinde True olur
        {
            Console.WriteLine(reader.ReadLine()); // dosyadan 1 satır okur ve okuyucuyu sonraki satıra konumlandırır.
        }
        reader.Close();
        reader.Dispose();

Şimdi bir dosya oluşturma örneği verelim;

protected void Button1_Click(object sender, EventArgs e)
    {
        string appPath = Request.PhysicalApplicationPath;
        string filePath = appPath + "Dosya.txt";
        StreamWriter yaz;
        yaz = File.CreateText(filePath);
        yaz.WriteLine("Eklediğim ilk kelime.");
        yaz.WriteLine("Daha fazlasınıda ekleyebilirdim...");
        yaz.Flush();
        yaz.Close();
        ListBox1.Items.Add( "Dosya Başarılı bir şekilde oluşruldu.");
        ListBox1.Items.Add(filePath); 
    }

EKRAN ÇIKTISI

OLUŞTURULAN DOSYA

Evet arkadaşlar sadece kodları kullanarak dosya oluşturup içine istediğimiz bilgileri giriş yaptık.

Dosya İçindekileri Listeleme

Butona basdığımız zaman klasördeki dosyaları listbox içerisine alacağız dosyalar üzerinde işlem yapabilmek için System.IO kütüphanesini projemize ekliyoruz ekliyoruz klasördeki dosyaları alabilmek için Directory.GetFiles komutunu kullanıyoruz örneğimizi inceleyelim.

HTML BLOĞU

1 Label 1 textbox 1 buton 1 listbox oluşturuyoruz.

<div>
  
        <asp:Label ID="Label1" runat="server" Text="Klasör yolu : "></asp:Label>
        <asp:TextBox ID="TextBox1" runat="server" Width="427px"></asp:TextBox>
    
   	 </div>
        <p>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Klasördekileri Listele" Width="130px" style="margin-left: 379px" />
        </p>
  
        <asp:ListBox ID="ListBox1" runat="server" Height="133px" Width="518px" style="margin-right: 0px"></asp:ListBox>

Sürükle bırak yaparsak kodlar otomatik dolucaktır.

KOD BLOĞU

   protected void Page_Load(object sender, EventArgs e)
    {
        string klasoryolumuz = Request.PhysicalApplicationPath;
        TextBox1.Text = klasoryolumuz;
       
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        string klasorumuz = TextBox1.Text.ToString();
        string[] klasordekiler = Directory.GetFiles(klasorumuz);
        ListBox1.DataSource = klasordekiler;
        ListBox1.DataBind();
    }

EKRAN ÇIKTISI

Öncelikle page load  yani ilk sayfa yüklemesinde gelen ekran görüntümüzü inceleyelim;

Şimdide Butona tıkladıktan sonra projemizin dosyasında olanları listboxa  listeliyoruz.

Dosya Silme

ASP.NET Dosyalama İşlemleri Dosya üzerinde çeşitli işlemler yapabiliriz bunlardan biride silme işlemidir.Bu işlemi yapmadan önce dikkat etmemiz gereken hususlar mevcuttur.Örnek bir dosya silme kodu;

System.IO.File.Delete(Server.MapPath("resimler/Çöl.jpg"));

Kodu direk kopyala yapıştır yaparsanız çalışmayabilir.Öncelikle mantığını anlamak gerekir.Örnek bir hata;

ERROR:  Additional information: Could not find a part of the path ‘D:\Users\rakbuz\Documents\Visual Studio 2015\WebSites\WebSite4\resimler\Çöl.jpg’.

Burada hata olarak bize belirtilen klasör yolunu bulamadığını söyledi.Silmek istediğimiz dosyanın klasör yolunu dosya özelliklerinden öğrenebiliriz yada arama çubuğuna sağ tıklayıp adres kısayolunu kopyala diyebiliriz bunun için metotlarda mevcuttur.

 Dosya Taşımak

Programımız içinde dosya taşımamızı gerektiren durumlar olabilir.Çeşitli yöntemler mevcuttur.System.IO kütüphanesini kullanarak aşşağıdaki şekilde yapabiliriz.

Örnek:

System.IO.File.Move(Server.MapPath("resimler/okul.gif"),Server.MapPath("resimler2/okul.gif"));

Burada 1. parametre olarak taşınacak dosyanın yolunu ve adını, 2. parametre olarak hangi klasöre taşınacağını belirtiyoruz.

Dosya Kopyalamak

ASP.NET Dosyalama İşlemleri Dosyalarımızda kopyalama işlemi yapabilmek için aşağıdaki adımları izleyebiliriz.

Örnek:

System.IO.File.Copy(Server.MapPath("resimler/araba.gif"),Server.MapPath("resimler2/araba.gif"),True);

Burada 1. parametre olarak kopyalanacak dosyanın yolunu ve adını, 2. parametre olarak hangi klasöre hangi isimle kopyalanacağı,aynı isimlede kopyalayabiliriz ve 3. parametre olarak hedef klasörde aynı isimde bir dosya mevcut ise dosyanın üzerine yazılıp yazılmayacağını belirtiyoruz. True değeri, üzerine yazılmayı aktif eder.

Dosyaya Öznitelik Atamak

Dosyalarımızda çeşitli özellikler bulunmasını isteyebiliriz. Öznitelik atarken 2. parametre olarak IO.FileAttributes. tanımından sonra Archive (Arşiv), Hidden (Gizli), ReadOnly (Salt Okunur), System (Sistem) vb. özellikleri atayabiliriz.

Örnek:

burda öznitelik atarız

 System.IO.File.SetAttributes(Server.MapPath("notlar/notlar.txt"),FileAttributes.Hidden);
 System.IO.File.SetAttributes(Server.MapPath("notlar/notlar.txt"), FileAttributes.ReadOnly);

Dosyanın var olup olmadığını kontrol etmek :

Dosyanın var olup olmadığını aşağıdaki kod bloğumuzla öğrenebiliriz.

if (System.IO.File.Exists(Server.MapPath("notlar/notlar.txt")))
        { Response.Write("Dosya Var!"); }
        else
 { Response.Write("Dosya Yok!"); }

Dosyalama Metotları

Oluşturucular

 

AD Açıklama
FileInfo(String) Yeni bir örneğini başlatır FileInfo bir dosya yolu için sarmalayıcı görevi gören sınıf.

 

Özellikler

 

AD Açıklama
Attributes Alır veya ayarlar için geçerli bir dosya veya dizin öznitelikleri.(Devralındığı yer: FileSystemInfo.)
CreationTime Alır veya ayarlar geçerli dosya veya dizin oluşturma zamanı.(Devralındığı yer: FileSystemInfo.)
CreationTimeUtc Alır veya geçerli dosya veya dizin oluşturma süresinin Eşgüdümlü Evrensel Saat (UTC) ayarlar.(Devralındığı yer: FileSystemInfo.)
Directory Üst dizini örneğini alır.
DirectoryName Dizinin tam yolu temsil eden bir dize alır.
Exists Bir dosyanın mevcut olup olmadığını belirten bir değer alır.(FileSystemInfo.Exists öğesini geçersiz kılar.)
Extension Dosya uzantısı bölümünü temsil eden dizeyi alır.(Devralındığı yer: FileSystemInfo.)
FullName Dizinin veya dosyanın tam yolunu alır.(Devralındığı yer: FileSystemInfo.)
IsReadOnly Alır veya geçerli dosya salt okunur belirleyen bir değer ayarlar.
LastAccessTime Saati alır veya geçerli dosya veya dizin son erişildiği ayarlar.(Devralındığı yer: FileSystemInfo.)
LastAccessTimeUtc Saati alır veya, Eşgüdümlü Evrensel geçerli dosya veya dizin son erişildiği saat (UTC) ayarlar.(Devralındığı yer: FileSystemInfo.)
LastWriteTime Saati alır veya zaman geçerli dosya veya dizin son için yazıldığı ayarlar.(Devralındığı yer:FileSystemInfo.)
LastWriteTimeUtc Saati alır veya geçerli dosya veya dizin son için yazıldıktan sonra, Eşgüdümlü Evrensel Saat (UTC) ayarlar.(Devralındığı yer: FileSystemInfo.)
Name Dosyanın adını alır.(FileSystemInfo.Name öğesini geçersiz kılar.)
Length Geçerli dosyanın bayt cinsinden boyutu alır.

 

Yöntemler

Create() Bir dosya oluşturur.
CreateObjRef(Type) Uzak bir nesne ile iletişim kurmak için kullanılan bir proxy oluşturmak için gerekli tüm bilgileri içeren bir nesne oluşturur.(Devralındığı yer:MarshalByRefObject.)
CreateText() Oluşturur bir StreamWriter bir metin dosyasına yazar.
Decrypt() Geçerli hesap kullanılarak şifrelenmiş bir dosya şifresini çözer Encryptyöntemi.
Delete() Bir dosya kalıcı olarak siler.(FileSystemInfo.Delete() öğesini geçersiz kılar.)
Encrypt() Bir dosya yalnızca dosya şifrelemek için kullanılan hesap şifresini böylece şifreler.
Equals(Object) Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.(Devralındığı yer: Object.)
GetAccessControl() Alır bir FileSecurity Geçerli tarafından açıklanan dosyası için erişim denetim listesi (ACL) girdileri yalıtan nesne FileInfo nesne.
GetType() Mevcut örnek için Type alır.(Devralındığı yer: Object.)
MoveTo(String) Belirtilen bir dosya, yeni bir dosya adı belirtme seçeneğiniz sağlayan yeni bir konuma taşır
Open(FileMode) Bir dosya belirtilen modunda açar.
OpenRead() Salt okunur oluşturur FileStream.
OpenText() Oluşturur bir StreamReader ile varolan bir metin dosyasından okur UTF8 kodlama.
OpenWrite() Salt yazılır oluşturur FileStream.
Refresh() Nesne durumunu yeniler.(Devralındığı yer: FileSystemInfo.)
Replace(String, String) Belirtilen bir dosyanın içeriğini geçerli tarafından açıklanan dosya ile değiştirir FileInfo özgün dosyayı silmek ve değiştirilen dosyanın bir yedeği oluşturma nesne

 

Dersimiz bu kadar arkadaşlar umarım herkes ASP.NET Dosyalama İşlemleri dersini hem okuyarak hemde okurken uygulayarak öğrenmiştir.Emeğe saygı olarak yorum yapar yada paylaşırsanız çok mutlu olurum.Kendinize iyi bakın.

 

Microsoft teşekkürlerMicrosoft

Yapılan Yorumlar

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.