İçeriğe geç
← Blog

C# ile ListBox İçeriğini Dosyaya Kaydetme

30 Temmuz 2009, 17:48 C# 2 dk 15.7k 0

Kullandığımız metotlar şunlar:

C#
listBox1.Items.CopyTo(object[] destination, int arrayIndex);

System.IO.File.WriteAllLines(string path, string[] contents);

CopyTo() Metodu

CopyTo() metodu, bir koleksiyon içerisindeki elemanları belirtilen bir diziye kopyalamak için kullanılır.

Parametreleri şunlardır:

  • destination : Verilerin kopyalanacağı dizi.
  • arrayIndex : Kopyalama işleminin dizinin hangi indisinden başlayacağını belirtir.

Örneğin 0 değeri verilirse, tüm elemanlar dizinin ilk elemanından itibaren kopyalanmaya başlanır.

WriteAllLines() Metodu

WriteAllLines() metodu, bir dizi içerisindeki her elemanı dosyaya ayrı bir satır olarak yazar.

İlk parametre oluşturulacak dosyanın yolunu belirtir.

Örneğin:

Bash
C:\settings.txt

şeklinde tam yol verebileceğiniz gibi,

Bash
settings.txt

şeklinde yalnızca dosya adını da yazabilirsiniz. Bu durumda dosya uygulamanın çalıştığı klasöre oluşturulur.

İkinci parametre ise dosyaya yazdırılacak string dizisidir.

Örnek Uygulama

Aşağıdaki örnekte iki farklı ListBox içerisindeki veriler iki ayrı metin dosyasına kaydedilmektedir.

C#
private void btnSave_Click(object sender, EventArgs e)
{
    string[] siteList = new string[listBox1.Items.Count];
    string[] emailList = new string[listBox2.Items.Count];

    listBox1.Items.CopyTo(siteList, 0);
    listBox2.Items.CopyTo(emailList, 0);

    System.IO.File.WriteAllLines("sites.txt", siteList);
    System.IO.File.WriteAllLines("emails.txt", emailList);
}

Yukarıdaki kod çalıştırıldığında:

  • listBox1 içerisindeki tüm veriler sites.txt dosyasına,
  • listBox2 içerisindeki tüm veriler ise emails.txt dosyasına

satır satır kaydedilecektir.

Bu yöntem, koleksiyon içerisindeki verileri dosyaya aktarmanın oldukça pratik ve okunabilir bir yoludur. Özellikle ayar dosyaları, e-posta listeleri veya benzeri metin tabanlı verileri saklamak istediğiniz durumlarda rahatlıkla kullanılabilir.

📝 Arşiv Notu

Bu yazı ilk olarak 2009 yılında hazırlanmıştır. Anlatılan yöntem günümüzde de kullanılabilir olsa da, daha yeni .NET sürümlerinde aynı işlemi gerçekleştirmek için farklı koleksiyon yapıları ve LINQ gibi modern yaklaşımlar da tercih edilebilir.