Environment.GetFolderPath(Environment.SpecialFolders.ApplicationData)返回C:

时间:2013-11-04 13:26:40

标签: c# environment-variables appdata

我在我的一个客户的计算机上遇到了一个非常奇怪的行为,我找不到任何关于它为什么会发生的线索: 当应用程序调用{​​{1}}时 返回值为Environment.GetFolderPath(Environment.SpecialFolders.ApplicationData)

这当然是错误的,他的AppData目录通常是C:,而且他的变量C:\Users\.....\AppData\Roaming指向该目录。

有人能说清楚为什么会发生这种情况吗?

编辑:代码......

%APPDATA%

抛出的异常表示它无法创建由空字符串或空格组成的目录。调查一些输出显示从该调用返回的AppData文件夹是C:实际上它应该是用户的真实AppData文件夹。

1 个答案:

答案 0 :(得分:1)

Environment.SpecialFolder.ApplicationData标识的文件夹的实际路径取决于当前用户(启动该程序的人)。

确保程序在ApplicationData文件夹所在的用户帐户下运行。 如果您的程序在例如您可能想要使用另一个目录的本地系统帐户。

您可以使用Environment.SpecialFolder.ApplicationDataEnvironment.SpecialFolder.CommonProgramFiles来代替Environment.SpecialFolder.CommonProgramFilesX86