[解決済み] Vista で Environment.GetFolderPath(...CommonApplicationData) が "C:\Documents and Settings" を返している。
2023-04-30 13:52:07
質問
私が理解するところでは、あなたは以下のように
Environment.GetFolderPath
メソッドを使用することで、OSに依存しないコードを作成することができます...
Windows XPでは
C:\Documents and Settings\
. Windows Vista では
C:\ProgramData
と
C:\Users
.
Windows Vista のコンピュータで以下のコードを使用していますが、このコードは
C:\Documents and Settings\
ディレクトリの代わりに
C:\ProgramData
のように表示されるのですが・・・。何かアイデアはありますか?
string commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
try
{
File.CreateText(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) +
"\\mycompany\\uid");
log.Debug("Created file successfully");
}
catch (Exception ex)
{
log.Error("Unable to create the uid file: ", ex);
}
どのように解決するのですか?
私のインストーラーは、XP コンピューター上で生成された log.txt ファイルをコピーしました。 私はそのログ ファイルを Vista で生成されたものと思って見ていました。 一度、私の log4net 設定を "Vista Compatible" に修正しました。 Environment.GetFolderPathは期待通りの結果を返していました。 したがって、私はこの投稿を閉じます。
次の SpecialFolder パスのリファレンスは有用かもしれません。
Windows Server 2003 での出力。
SpecialFolder.ApplicationData。C:\Documents and SettingsblakeApplication Data SpecialFolder.CommonApplicationData: C:\Documents and Settings﹑All Users﹑Application Data SpecialFolder.ProgramFiles: C:\Program Files SpecialFolder.CommonProgramFiles: C:\Program Files╱Common Files SpecialFolder.DesktopDirectory: C:\Documents and Settings↵Desktop SpecialFolder.LocalApplicationData: C:\Documents and Settings︓Local Settings︓Application Data SpecialFolder.MyDocuments: C:\Documents and Settings︓My Documents SpecialFolder.System: C:\WINDOWS
Vistaでの出力です。
SpecialFolder.ApplicationData。C:UsersblakeAppDataRoaming SpecialFolder.CommonApplicationData: C:\ProgramData SpecialFolder.ProgramFiles: C:\Program Files SpecialFolder.CommonProgramFiles: C:\Program Files⇄Common Files SpecialFolder.DesktopDirectory: C:\UsersDesktop SpecialFolder.LocalApplicationData: C:\Usersblake╱AppData╱Local SpecialFolder.MyDocuments: C:\Usersblake╱Documents SpecialFolder.System: C:\Windows
関連
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] base64文字列をエンコード、デコードするにはどうしたらいいですか?
-
[解決済み] .NETでapp.configやweb.configから設定を読み込む
-
[解決済み] ディレクトリ内のすべてのファイルやフォルダを削除する方法は?
-
[解決済み] C#の==とEquals()の違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】画像のペイントにTextureBrushを使用する方法