C# で記述された Windows サービスがあります。各ユーザー ディレクトリにファイルを追加する必要があります。開始するパスを見つけるにはどうすればよいですか? これは本当にばかげていると思いますが、これは私が現在行っていることです:
if (Directory.Exists("C:\\Users"))
{
path = "C:\\Users";
}
else if (Directory.Exists("C:\\Documents and Settings"))
{
path = "C:\\Documents and Settings";
}
特別なフォルダーを見てきました: http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx
それらのどれも私が必要なものを返していないようです。たとえば、ApplicationData は System32 ディレクトリへのパスを返しています。これは、Windows サービスとして実行されているためだと思います。私が現在使用しているコードは、私が行ったいくつかのテストで機能します。このパスを取得するためのよりインテリジェントな (エラー防止) 方法が必要なようです。
別の考え...探しているものを提供するレジストリキーがあるのではないでしょうか? うーん