将文件写入Common Application Data文件夹被拒绝

Sur*_*esh 6 .net c# permissions

我使用了follwing函数将数据写入用户应用程序文件夹

private void WriteToLog(string source, string method, string msg)
{

 string LogFile =Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\test";            
 LogFile = LogFile + "\\Log.txt";
 StreamWriter sw = new StreamWriter(LogFile, true );
 string str = DateTime.Now.ToString() + "source=" + source + "\t Method=" + method + "\t" + msg;
sw.WriteLine(str);
sw.Flush();
sw.Close();
}
Run Code Online (Sandbox Code Playgroud)

上述代码在管理员帐户中完美运行,但在有限的用户帐户中失败

Chr*_*ter 14

受限用户通常不具有对所有用户共有的文件夹的写访问权.你确定你不是要写一个不同的文件夹吗?

例如,您可以使用Environment.SpecialFolder.ApplicationData(当前用户,漫游数据)或Environment.SpecialFolder.LocalApplicationData(当前用户,非漫游数据).

  • 通常,您可以将ApplicationData用于特定于用户但不一定仅限于该计算机的内容,而将LocalApplicationData用于特定于用户且特定于计算机的内容(例如,取决于计算机安装的软件或安装路径的数据) . (3认同)
  • 嗯,似乎违反直觉的是,没有任何位置可以轻松地保存一些与所有用户通用的通用应用程序相关的配置数据。 (2认同)