[英]c# Serializable object XML file location
我有这段代码可以创建XML文件并存储复选框是true还是false。 在应用程序启动时读取
[Serializable()]
[XmlRoot("Store", Namespace = "")]
public class Credentials
{
public Credentials() { }
public bool checkBox1State { get; set; }
public static Credentials ReadCredentials()
{
XmlSerializer reader = new XmlSerializer(typeof(Credentials));
System.IO.StreamReader file = new System.IO.StreamReader("Credentials.xml");
Credentials data = new Credentials();
data = (Credentials)reader.Deserialize(file);
file.Close();
return data;
}
public static void WriteCredentials(Credentials data)
{
XmlSerializer writer = new XmlSerializer(typeof(Credentials));
System.IO.StreamWriter file = new System.IO.StreamWriter("Credentials.xml");
writer.Serialize(file, data);
file.Close();
}
}
我的程序从xml文件读取和写入完美。 但是我注意到这存储在启动.exe的根目录中。 通常,这将在需要提升权限才能写入的程序文件中。
因此,我想将此文件存储在用户的AppData文件夹中。 为此,需要对我的代码进行哪些修改?
谢谢
您需要解析当前用户的AppData目录的路径。 使用SpecialFolder枚举
string fileName = Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData), "Credentials.xml")
或通过扩展环境变量
string fileName = Environment.ExpandEnvironmentVariables(@"%AppData%\Credentials.xml");
并使用它代替真实的文件名
System.IO.StreamReader file = new System.IO.StreamReader(fileName);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.