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
veFileInfo
: Dosyalar üzerinde temel işlemleri yapmak için kullanılır.StreamReader
veStreamWriter
: 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}");
}
}
}