我在我的一个客户的计算机上遇到了一个非常奇怪的行为,我找不到任何关于它为什么会发生的线索:
当应用程序调用{{1}}时
返回值为Environment.GetFolderPath(Environment.SpecialFolders.ApplicationData)
。
这当然是错误的,他的AppData目录通常是C:
,而且他的变量C:\Users\.....\AppData\Roaming
指向该目录。
有人能说清楚为什么会发生这种情况吗?
编辑:代码......
%APPDATA%
抛出的异常表示它无法创建由空字符串或空格组成的目录。调查一些输出显示从该调用返回的AppData文件夹是C:实际上它应该是用户的真实AppData文件夹。
答案 0 :(得分:1)
Environment.SpecialFolder.ApplicationData
标识的文件夹的实际路径取决于当前用户(启动该程序的人)。
确保程序在ApplicationData文件夹所在的用户帐户下运行。 如果您的程序在例如您可能想要使用另一个目录的本地系统帐户。
您可以使用Environment.SpecialFolder.ApplicationData
或Environment.SpecialFolder.CommonProgramFiles
来代替Environment.SpecialFolder.CommonProgramFilesX86
。