İni Dosyası Nedir? C# ile İni Dosyalarına Yazma ve Okuma

*.ini uzantılı dosyalar Windows işletim sisteminde ayarların tutulduğu dosyalardır. Adını Windows Initialization File kelime grubundaki Initialization kelimenin ilk harflerinden almıştır. Windows ilk sürümlerinde sistem ayarlarını ini uzantılı dosyalarda saklardı. Daha sonraları bu ayarların bir kısmını Regedite aktarmıştır. Yazılımcılarda programları ile ilgili bazı ayarlarını ini dosyalarında tutmayı tercih etmektedirler. Bu yazımızda program ayarlarını ini dosyasına kaydetme ve okuma işlemlerini paylaşacağız. Öncelikle Okuma ve yazma işlemlerini yapacağımız metodları bir IniIslemleri.cs isimli class içerisinde topladım. Açıklamalar yorum satırlı olarak eklenmiştir.

    public static class IniIslemleri
    {
        //Sınıfımızı Extension Method olarak kullanmak istediğimiz için static tanımlıyoruz.

        static string dizinYolu = "C:\\Proje"; 
        static string dosyaAdi = "C:\\Proje\\ayarlar.ini";


        //Yazma işlemleri için gerekli olan dll'i import edip, ini için WritePrivateProfileString metodunun görüntüsünü aldık
        [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool WritePrivateProfileString(string kategori, string anahtar, string deger, string dosyaAdi);


        //Yazma işlemleri için gerekli olan dll'i import edip, ini için GetPrivateProfileString metodunun görüntüsünü aldık
        [DllImport("kernel32.dll")]
        static extern uint GetPrivateProfileString(string kategori, string anahtar, string lpDefault, StringBuilder sb, int sbKapasite, string dosyaAdi);
        
        public static bool VeriYaz(string kategori, string anahtar, string deger)
        {
            if (!Directory.Exists(dizinYolu)) //Dizin yoksa oluşturalım.
                Directory.CreateDirectory(dizinYolu);

            return WritePrivateProfileString(kategori, anahtar, deger, dosyaAdi);
        }

        public static string VeriOku(string kategori, string anahtar)
        {
            //Okunacak veriyi okumak ve kapasitesini sınırlandırmak ve performans için StringBuilder sınıfını kullanıyoruz.
            StringBuilder sb = new StringBuilder(500);

            GetPrivateProfileString(kategori, anahtar,"", sb, sb.Capacity, dosyaAdi);

            string veri = sb.ToString();
            sb.Clear();
            return veri;
        }
    }

Açıklamada belirttiğim gibi okuma ve yazma işlemlerine Extensions Metod yöntemiyle erişeceğim. Kategori grubu için bir anahtar gireceğim. Bunun için IniIslemleri sınıfındaki VeriYaz metodunu şöyle kullanabilirim.

IniIslemleri.VeriYaz("Kategori", "Anahtar1", textBox1.Text)

C:\Proje\ayarlar.ini dosyası çıktısı

Yine Kategori grup altındaki Anahtar1 başlığındaki değeri okumak için IniIslemleri sınıfındaki VeriOku metodunu şöyle kullanabilirim.

textBox2.Text = IniIslemleri.VeriOku("Kategori", "Anahtar1");

Örnek projeyi bu adresten inceleyebilirsiniz. https://github.com/osmanceliktr/inifilereadandwrite Kolay gelsin.    

Entity Framework Nedir Nasıl Çalışır? Önceki Yazı

Entity Framework Nedir Nasıl Çalışır?

GoDaddy'de Plesk Panel Üzerinde Ücretsiz SSL Sertifikası Kurulumu Nasıl Yapılır? Sonraki Yazı

GoDaddy'de Plesk Panel Üzerinde Ücretsiz SSL Sertifikası Kurulumu Nasıl Yapılır?

Yorum/Soru Yazın