Файл настроек C# программы - создание и использование

12:09:2013 Рі.

В данном небольшом руководстве описывается создание и использование файлов настроек в C#. Оговорюсь сразу, что при данном методе настройки храняться в незашифрованном текстовом виде, но именно это, практически, всегда и нужно при написании программы на C# (без разницы WindowsForms или WPF). Хранить пользовательские предпочтения именно так - отличный выбор.

Многие используют "родные" файлы настроек. Но, с моей точки зрения, лучше использовать ini файл. Как работать с ini файлом в C# - очень просто, достаточно использовать класс, который приводится ниже. Откровенно говоря, этот класс когда-то был взят с какого-то буржуйского ресурса, однако, теперь уже не могу вспомнить с какого именно, поэтому просто привожу ему благодарность, но без ссылки.

classINI
{
     publicstring path;

    [DllImport("kernel32")]
    private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

    public INI(string INIPath)
    {
         path = INIPath;
    }

    public void IniWriteValue(string Section, string Key, string Value)
    {
           if(!Directory.Exists(Path.GetDirectoryName(path)))
                 Directory.CreateDirectory(Path.GetDirectoryName(path));
           if(!File.Exists(path))
                  using (File.Create(path)) { };

           WritePrivateProfileString(Section, Key, Value, this.path);
    }

   public string IniReadValue(string Section, string Key)
   {
         StringBuilder temp = new StringBuilder(255);
         int i = GetPrivateProfileString(Section, Key, "", temp, 255, this.path);
         return temp.ToString();
   }
}

Как видно, класс очень лаконичный, но для того, чтобы создать файл настроек в C# на основе ini файла этого вполне достаточно. Исключения здесь обрабатываются автоматически, в случае некорректных значений (к примеру, кто-то вручную отредактировал ini-файл) просто возвращается пустая строка.

Использование может быть следующим. Записываем значение в файл:

INI ini = new INI("Путь_к_файлу"); ini.IniWriteValue("Test_block","Key","Value");

Теперь в нашем файле есть значение Key, которое равно Value. Теперь считаем его:

string value = ini.IniReadValue("Test_block","Key");

 

Комментарии  

 
+3#1MrOcelot2014-08-31 11:58StringBuilder находится в System.Text
Добавь в статью, что нужно добавить юзинг на этот ресурс.
Цитировать
 

Добавить комментарий



Обновить

« Tinymce в ASP.NET MVC 4 - пример использования с русификацией   Приложение с поддержкой локализации на C# Windows Forms - часть 3 »
← Раньше

Фотоальбом

fotic.jpg

Облако Тегов