クライアントの 1 つのコンピューターで非常に奇妙な動作に遭遇しましたが、その理由についての手がかりが見つかりません。アプリケーションが呼び出すと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 フォルダーである必要があります。