我在我的一个客户的计算机上遇到了一个非常奇怪的行为,我找不到任何关于它发生原因的线索:当应用程序调用时Environment.GetFolderPath(Environment.SpecialFolders.ApplicationData)
,返回值将是C:
.
这当然是错误的,他的 AppData 目录是通常的C:\Users\.....\AppData\Roaming
,而且他的变量%APPDATA%
正好指向那个目录。
任何人都可以阐明为什么会发生这种情况吗?
编辑:代码...
LogFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\ReportsAddin";
if (!Directory.Exists(LogFilePath) && Properties.Settings.Default.Logging == true)
{
try
{
Directory.CreateDirectory(LogFilePath);
}
catch (Exception ex)
{
// ...
}
}
然后抛出的异常表示它无法创建由空白字符串或空格组成的目录。使用一些输出进行调查显示,从该调用返回的 AppData 文件夹是 C:,而实际上它应该是用户的真实 AppData 文件夹。