tôi thử một số phương pháp để lưu trữ các thiết lập của tôi chỉ đơn giản là tập tin văn bản và tôi tìm thấy cách tốt nhất:
tập tin được lưu trữ trong thư mục ứng dụng, đến việc sử dụng, Settings.txt: (bên trong các thiết lập tập tin đã được phê duyệt bình luận, hãy thử // bình luận)
// để có được thiết lập giá trị
Settings.Get("name", "Ivan");
// để đặt thiết lập giá trị
Settings.Set("name", "John");
sử dụng:
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
// bạn có thể lưu trữ cũng với tên phần, sử dụng chỉ cần thêm phần tên Set (SECTION_NAME, tên, giá trị) và Nhận (SECTION_NAME, tên, giá trị)
public static class Settings
{
private static string SECTION = typeof(Settings).Namespace;//"SETTINGS";
private static string settingsPath = Application.StartupPath.ToString() + "\\settings.txt";
[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 static String GetString(String name)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(SECTION,name,"",temp,255,settingsPath);
return temp.ToString();
}
public static String Get(String name, String defVal)
{
return Get(SECTION,name,defVal);
}
public static String Get(string _SECTION, String name, String defVal)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(_SECTION, name, "", temp, 255, settingsPath);
return temp.ToString();
}
public static Boolean Get(String name, Boolean defVal)
{
return Get(SECTION, name, defVal);
}
public static Boolean Get(string _SECTION, String name, Boolean defVal)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(_SECTION,name,"",temp,255,settingsPath);
bool retval=false;
if (bool.TryParse(temp.ToString(),out retval))
{
return retval;
} else
{
return retval;
}
}
public static int Get(String name, int defVal)
{
return Get(SECTION, name, defVal);
}
public static int Get(string _SECTION, String name, int defVal)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(SECTION,name,"",temp,255,settingsPath);
int retval=0;
if (int.TryParse(temp.ToString(),out retval))
{
return retval;
} else
{
return retval;
}
}
public static void Set(String name, String val)
{
Set(SECTION, name,val);
}
public static void Set(string _SECTION, String name, String val)
{
WritePrivateProfileString(_SECTION, name, val, settingsPath);
}
public static void Set(String name, Boolean val)
{
Set(SECTION, name, val);
}
public static void Set(string _SECTION, String name, Boolean val)
{
WritePrivateProfileString(_SECTION, name, val.ToString(), settingsPath);
}
public static void Set(String name, int val)
{
Set(SECTION, name, val);
}
public static void Set(string _SECTION,String name, int val)
{
WritePrivateProfileString(SECTION, name, val.ToString(), settingsPath);
}
}
Tôi nghĩ rằng [bài viết này] (http://blog.kowalczyk.info/kb/getting-user-specific-application-data-directory-for-.net-winforms-apps.html) đề cập đến giải pháp. –
[Cập nhật liên kết] (https://blog.kowalczyk.info/article/10b/Getting-user-specific-application-data-directory.html) từ bình luận của Jorges. – tm1