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

时间:2013-11-20 11:46:31

标签: c# windows-phone

我有将文件保存在目录

中的文件夹中的代码
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它给出路径bt我看不到该路径上的Data文件夹或Owe-Data文件 任何人都可以告诉为什么会发生这种情况,或者我应该将Data文件夹保存在这个prgram运行的当前目录中?但我不知道如何到达那条道路。有解决方案?? 在Windows Phone 5上工作,visual studio 2008 .NET framwork 2.0

2 个答案:

答案 0 :(得分:1)

根据documentation例外部分,

时会抛出上述异常
  

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 folderVisual Studio尚未以Admin模式启动。

编辑查看link并尝试添加Common AppData

中定义的手动注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\

答案 1 :(得分:0)

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

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

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

修改 请参阅MSDN中的this article