我一直在教自己如何编码,因为我很无聊。我试图在启动时加载XML文件并将该文件的内容放入列表框,然后将列表框的内容保存到文件中。这正是我现在所拥有的。但是,我希望能够从AppData加载以及保存回AppData文件夹,而无需键入完整路径。我尝试使用“%AppData%/ Roaming / MyApp / data.xml”,但这不起作用并引发异常。
以下是我现在所拥有的:
StreamReader sr = new StreamReader("data.xml");
line = sr.ReadLine();
while (line != null) {
Streamers.Items.Add(line);
line = sr.ReadLine();
}
Streamers.DataSource = line;
Streamers.Sorted = true;
sr.Close();
Console.ReadLine();
答案 0 :(得分:2)
您可以使用GetFolderPath
string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
您也可以查看this answer了解详情。
<强>更新强>
请注意,您需要管理员权限才能访问此文件夹。
对于Access denied
错误,请检查以下两个答案:
目录
%AppData%
是受系统保护的目录。视窗 一旦访问,将尝试阻止对该目录的任何访问 未授权(来自其他用户的访问权限 管理员)。
我会使用
System.IO.Path.Combine(...)
代替。{string.Conact(...)
在这种情况下。像这样......string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Programım");