错误:System.Environment.SpecialFolder’不包含’CommonApplicationData’的定义

我有代码将文件保存在目录中的文件夹中

string timestamp = DateTime.Now.ToString("MM-dd-yyyy.HH-mm-ss"); var file = File.Create("Owe-Data.txt" + timestamp); var com = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase + timestamp + @"\Data" + file; MessageBox.Show(com); if (!Directory.Exists(com)) { Directory.CreateDirectory(com); } using (var sw = new StreamWriter(com)) { sw.WriteLine(InputData); } } 

我显示COM它给路径我不能看到该路径上的数据文件夹或Owe-Data文件任何人都可以告诉为什么会发生这种情况,或者我应该将当前目录中的Data文件夹保存到这个prgram运行的位置? 但我不知道如何到达那条道路。 任何解决方案 在Windows Phone 5上工作,visual studio 2008 .NET framwork 2.0

根据文档的例外部分,当抛出上述exception时

ArgumentException ——-文件夹不是System.Environment.SpecialFolder的成员。

这意味着您运行此命令的OS没有Environment.SpecialFolder.CommonApplicationData作为特殊文件夹之一。

对于知识,
Environment.SpecialFolder.ApplicationData是最常见的一个。 此文件夹包含除用户文档之外的每用户非临时应用程序特定数据。 一个常见的例子是设置或配置文件。

Environment.SpecialFolder.CommonApplicationData类似,但在用户之间共享。 例如,您可以使用它来存储文档模板。

Environment.SpecialFolder.LocalApplicationDataApplicationData的非漫游替代方案。 因此,您永远不会在那里存储重要数据。 但是,因为它是非漫游的,所以它是临时文件,缓存等的好位置。 它通常位于本地磁盘上。

我认为问题可能是 Environment.SpecialFolder.CommonApplicationData是常见的并且在不同用户之间共享,并且您登录的user rights to access the folder或者Visual Studio尚未在Admin模式下启动。

编辑查看链接并尝试添加在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\定义的手动注册表Common AppData HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\

鉴于您根据标签询问.NET Windows Phone应用程序

我认为您的问题是.NET Windows Phone应用程序无法直接访问文件系统; 它只能通过设计访问IsolatedStorage 。

我会引用一个微软的来源,但我似乎找不到一个!

编辑请参阅MSDN上的这篇文章