System.IO
, C# içerisinde dosya ve klasör işlemleri gibi girdi ve çıktı işlemleri için sınıflar ve yöntemler sağlayan bir isim alanıdır. Bu isim alanı, .NET Framework’ün Temel Sınıf Kütüphanesi (BCL) içerisinde yer alır ve genellikle C# uygulamalarında dosya giriş/çıkış (I/O) işlemleri için kullanılır.
System.IO
isim alanı içerisinde sıkça kullanılan bazı sınıf ve tipler şunlardır: File, Directory, Path, StreamReader / StreamWriter, FileStream, MemoryStream, v.b.
Bu namespace altındaki sınıflar ve tipler, C# uygulamalarında dosya I/O işlemleri yapmak, klasörleri yönetmek, akımlarla çalışmak ve dosya ile ilgili görevleri ele almak için temel ve etkin bir yol sağlar.
File
System.IO
isim alanındaki File
sınıfı, C# programlama dilinde dosya işlemleri yapmak için kullanılan statik yöntemler içeren bir sınıftır. Bu sınıf, dosya okuma, yazma, kopyalama, taşıma, silme gibi temel dosya işlemlerini gerçekleştirmek için kullanılır ve genellikle dosya giriş/çıkış (I/O) işlemlerinde sıkça tercih edilir.
File
sınıfının bazı yaygın kullanılan yöntemleri ve özellikleri şunlardır:
File.Exists: Belirtilen dosyanın var olup olmadığını kontrol eder. Var ise true
, yok ise false
döndürür.
string filePath = @"C:\Users\UserName\Desktop\example.txt";
if (File.Exists(filePath))
{
Console.WriteLine("Dosya mevcut.");
}
else
{
Console.WriteLine("Dosya mevcut değil.");
}
File.ReadAllText: Belirtilen dosyanın tamamını bir dize olarak okur.
string fileContent = File.ReadAllText(@"C:\Users\UserName\Desktop\example.txt");
Console.WriteLine("Dosya içeriği: " + fileContent);
File.WriteAllText: Belirtilen dosyaya bir dizeyi yazarak dosyayı oluşturur veya üzerine yazar.
string content = "Merhaba, bu bir örnek dosyadır.";
File.WriteAllText(@"C:\Users\UserName\Desktop\example.txt", content);
Console.WriteLine("Dosya oluşturuldu ve içeriği yazıldı.");
File.Copy: Bir dosyayı başka bir konuma kopyalar.
File.Copy(@"C:\Users\UserName\Desktop\example.txt", @"D:\Backup\example_backup.txt");
Console.WriteLine("Dosya başarıyla kopyalandı.");
File.Delete: Belirtilen dosyayı siler.
File.Delete(@"C:\Users\UserName\Desktop\example.txt");
Console.WriteLine("Dosya silindi.");
File
sınıfının diğer metotları ve kullanımları:
- AppendAllLines: Dosyaya satırlar ekler ve ardından dosyayı kapatır. Belirtilen dosya mevcut değilse, bu yöntem bir dosya oluşturur, belirtilen satırları dosyaya yazar ve ardından dosyayı kapatır.
- AppendAllText: Bir dosyayı açar, belirtilen dizeyi dosyaya ekler ve ardından dosyayı kapatır. Dosya mevcut değilse, bu yöntem bir dosya oluşturur, belirtilen dizeyi dosyaya yazar ve ardından dosyayı kapatır.
- AppendText: Mevcut bir dosyaya veya belirtilen dosya mevcut değilse yeni bir dosyaya UTF-8 kodlamalı metin ekleyen bir StreamWriter oluşturur.
- Copy: Var olan bir dosyayı yeni bir dosyaya kopyalar. Aynı isimde bir dosyayı üzerine yazmak izin verilmez.
- Create: Belirtilen yol içerisinde bir dosya oluşturur veya varsa üzerine yazar.
- CreateText: Yazma amacıyla bir dosya oluşturur veya açar ve içerisine UTF-8 kodlamalı metin yazar.
- Decrypt: Şu anki hesap tarafından Encrypt yöntemi kullanılarak şifrelenen bir dosyayı şifresini çözer.
- Delete: Belirtilen dosyayı siler.
- Encrypt: Bir dosyayı, yalnızca dosyayı şifreleyen hesap tarafından çözülebilecek şekilde şifreler.
- Exists: Belirtilen dosyanın mevcut olup olmadığını belirler.
- GetAccessControl: Belirtilen dosya için erişim kontrol listesini (ACL) kapsayan bir FileSecurity nesnesi alır.
- Move: Belirtilen bir dosyayı yeni bir konuma taşır ve yeni bir dosya adı belirtme seçeneği sunar.
- Open: Belirtilen yol üzerinde okuma/yazma erişimiyle bir FileStream açar.
- ReadAllBytes: Bir ikili dosyayı açar, dosyanın içeriğini bir bayt dizisine okur ve ardından dosyayı kapatır.
- ReadAllLines: Bir metin dosyasını açar, dosyanın tüm satırlarını okur ve ardından dosyayı kapatır.
- ReadAllText: Bir metin dosyasını açar, dosyanın tüm satırlarını okur ve ardından dosyayı kapatır.
- Replace: Belirtilen bir dosyanın içeriğini başka bir dosyanın içeriğiyle değiştirir, orijinal dosyayı siler ve değiştirilen dosyanın bir yedeğini oluşturur.
- WriteAllBytes: Yeni bir dosya oluşturur, belirtilen bayt dizisini dosyaya yazar ve ardından dosyayı kapatır. Hedef dosya zaten varsa üzerine yazar.
- WriteAllLines: Yeni bir dosya oluşturur, bir dize koleksiyonunu dosyaya yazar ve ardından dosyayı kapatır.
- WriteAllText: Yeni bir dosya oluşturur, belirtilen dizeyi dosyaya yazar ve ardından dosyayı kapatır. Hedef dosya zaten varsa üzerine yazar.
FileInfo
FileInfo
sınıfı, bir dosyanın özelliklerini ve işlemlerini temsil eden bir sınıftır ve System.IO
isim alanında bulunur. Bu sınıf, bir dosyanın adı, uzantısı, boyutu, erişim izinleri ve diğer özellikleri gibi bilgileri almak ve dosya üzerinde çeşitli işlemler yapmak için kullanılır.
// Belirtilen yol üzerindeki bir dosyanın FileInfo nesnesini oluşturma
FileInfo fileInfo = new FileInfo(@"C:\Users\UserName\Desktop\example.txt");
// Dosyanın adını alma
string fileName = fileInfo.Name;
// Dosyanın tam yolunu alma
string fullPath = fileInfo.FullName;
// Dosya uzantısını alma
string fileExtension = fileInfo.Extension;
// Dosya boyutunu alma (bayt cinsinden)
long fileSize = fileInfo.Length;
// Dosyanın son yazılma zamanını alma
DateTime lastWriteTime = fileInfo.LastWriteTime;
// Dosyanın son erişim zamanını alma
DateTime lastAccessTime = fileInfo.LastAccessTime;
// Dosyanın oluşturulma zamanını alma
DateTime creationTime = fileInfo.CreationTime;
// Dosyanın salt okunur olup olmadığını kontrol etme
bool isReadOnly = fileInfo.IsReadOnly;
// Dosyayı silme
fileInfo.Delete();
// Dosyayı başka bir konuma taşıma
fileInfo.MoveTo(@"D:\Backup\example.txt");
FileInfo
sınıfının özellikleri ve kullanımları:
- Directory: Dosyanın ebeveyn dizininin bir örneğini alır.
- DirectoryName: Dizinin tam yolunu temsil eden bir dize alır.
- Exists: Bir dosyanın var olup olmadığını belirten bir değer alır.
- Extension: Dosyanın uzantısını temsil eden bir dize alır.
- FullName: Dizin veya dosyanın tam yolunu alır.
- IsReadOnly: Mevcut dosyanın salt okunur olup olmadığını belirleyen bir değer alır veya ayarlar.
- LastAccessTime: Mevcut dosyanın veya dizinin son erişildiği zamanı alır veya ayarlar.
- LastWriteTime: Mevcut dosyanın veya dizinin son yazıldığı zamanı alır veya ayarlar.
- Length: Mevcut dosyanın boyutunu, bayt cinsinden alır.
- Name: Dosyanın adını alır.
FileInfo
sınıfının bazı yöntemleri ve kullanımları:
- AppendText: Bu dosya örneğini temsil eden bir StreamWriter oluşturarak dosyaya metin ekler.
- CopyTo: Var olan bir dosyayı yeni bir dosyaya kopyalar, var olan bir dosyanın üzerine yazmayı engeller.
- Create: Yeni bir dosya oluşturur.
- CreateText: Yeni bir metin dosyası oluşturan bir StreamWriter oluşturur.
- Decrypt: Encrypt yöntemi kullanılarak şifrelenen bir dosyayı şifresini çözer.
- Delete: Belirtilen dosyayı siler.
- Encrypt: Bir dosyayı, yalnızca dosyayı şifreleyen hesap tarafından çözülebilecek şekilde şifreler.
- GetAccessControl: Belirtilen dosya için erişim kontrol listesini (ACL) içeren bir FileSecurity nesnesi alır.
- MoveTo: Belirtilen bir dosyayı yeni bir konuma taşırken, yeni bir dosya adı belirtme seçeneği sağlar.
- Open: Belirtilen FileMode ile bir dosyayı açar.
- OpenRead: Salt okunur bir FileStream oluşturur.
- OpenText: Mevcut bir metin dosyasından okuma yapabilen UTF8 kodlamalı bir StreamReader oluşturur.
- OpenWrite: Yalnızca yazma işlemi yapılabilen bir FileStream oluşturur.
- Replace: Belirtilen bir dosyanın içeriğini bu FileInfo nesnesi tarafından tanımlanan dosya içeriğiyle değiştirir, orijinal dosyayı siler ve değiştirilen dosyanın bir yedeğini oluşturur.
- ToString: Bir yolun dizesini döndürür.