C# Dosya İşlemleri

C# programlama dilinde dosya işlemleri, verilerin dış kaynaklarda (örneğin, metin dosyaları) saklanmasını, okunmasını ve yazılmasını sağlar. Dosya işlemleri için genellikle System.IO isim alanı kullanılır. Bu makalede, dosya oluşturma, okuma, yazma, silme ve dosya bilgilerini alma gibi temel işlemleri örneklerle ele alacağız.


1. Dosya İşlemleri için Kullanılan Sınıflar

C#’da dosya işlemleri için en sık kullanılan sınıflar:

  • File ve FileInfo: Dosyalar üzerinde temel işlemleri yapmak için kullanılır.
  • StreamReader ve StreamWriter: Dosyalardan okuma ve yazma işlemleri için kullanılır.
  • FileStream: Daha düşük seviyeli dosya işlemleri için kullanılır.

2. Dosya Oluşturma

Örnek: File.Create ile Dosya Oluşturma

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        if (!File.Exists(dosyaYolu))
        {
            File.Create(dosyaYolu).Close(); // Dosya oluşturulup kapatılıyor
            Console.WriteLine("Dosya oluşturuldu: " + dosyaYolu);
        }
        else
        {
            Console.WriteLine("Dosya zaten mevcut.");
        }
    }
}


3. Dosyaya Yazma

Örnek: File.WriteAllText ile Yazma

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        string metin = "Merhaba, C# dosya işlemleri!";
        
        File.WriteAllText(dosyaYolu, metin);
        Console.WriteLine("Dosyaya yazıldı: " + dosyaYolu);
    }
}

Örnek: StreamWriter ile Yazma

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        string metin = "Merhaba, C# dosya işlemleri!";
        
        File.WriteAllText(dosyaYolu, metin);
        Console.WriteLine("Dosyaya yazıldı: " + dosyaYolu);
    }
}

Örnek: StreamWriter ile Yazma

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        using (StreamWriter sw = new StreamWriter(dosyaYolu, true)) // true: var olan içeriği korur
        {
            sw.WriteLine("Yeni bir satır ekleniyor...");
        }
        Console.WriteLine("Dosyaya yazma işlemi tamamlandı.");
    }
}


4. Dosyadan Okuma

Örnek: File.ReadAllText ile Okuma

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        if (File.Exists(dosyaYolu))
        {
            string icerik = File.ReadAllText(dosyaYolu);
            Console.WriteLine("Dosya içeriği:\n" + icerik);
        }
        else
        {
            Console.WriteLine("Dosya bulunamadı.");
        }
    }
}

Örnek: StreamReader ile Okuma

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        using (StreamReader sr = new StreamReader(dosyaYolu))
        {
            string satir;
            while ((satir = sr.ReadLine()) != null)
            {
                Console.WriteLine(satir);
            }
        }
    }
}


5. Dosya Silme

Örnek: File.Delete ile Silme

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        if (File.Exists(dosyaYolu))
        {
            File.Delete(dosyaYolu);
            Console.WriteLine("Dosya silindi: " + dosyaYolu);
        }
        else
        {
            Console.WriteLine("Dosya bulunamadı.");
        }
    }
}


6. Dosya Bilgilerini Alma

Örnek: FileInfo Kullanımı

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        FileInfo dosyaBilgi = new FileInfo(dosyaYolu);

        if (dosyaBilgi.Exists)
        {
            Console.WriteLine("Dosya Adı: " + dosyaBilgi.Name);
            Console.WriteLine("Dosya Boyutu: " + dosyaBilgi.Length + " bayt");
            Console.WriteLine("Oluşturulma Tarihi: " + dosyaBilgi.CreationTime);
            Console.WriteLine("Son Erişim Tarihi: " + dosyaBilgi.LastAccessTime);
        }
        else
        {
            Console.WriteLine("Dosya bulunamadı.");
        }
    }
}


7. FileStream Kullanımı

FileStream, daha karmaşık dosya işlemleri için kullanılır. Okuma, yazma ve dosya üzerinde farklı işlemler yapmanıza olanak tanır.

Örnek: FileStream ile Yazma ve Okuma

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";

        // Dosyaya yazma
        using (FileStream fs = new FileStream(dosyaYolu, FileMode.OpenOrCreate, FileAccess.Write))
        {
            byte[] veri = System.Text.Encoding.UTF8.GetBytes("FileStream ile yazılan veri.");
            fs.Write(veri, 0, veri.Length);
        }

        // Dosyadan okuma
        using (FileStream fs = new FileStream(dosyaYolu, FileMode.Open, FileAccess.Read))
        {
            byte[] veri = new byte[fs.Length];
            fs.Read(veri, 0, veri.Length);
            Console.WriteLine(System.Text.Encoding.UTF8.GetString(veri));
        }
    }
}


8. Hata Yönetimi ile Dosya İşlemleri

Örnek: Dosya İşlemlerinde Hata Yönetimi

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";

        try
        {
            string icerik = File.ReadAllText(dosyaYolu);
            Console.WriteLine("Dosya İçeriği:\n" + icerik);
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("Hata: Dosya bulunamadı.");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Beklenmeyen bir hata oluştu: {ex.Message}");
        }
    }
}

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir