アプリケーションデータディレクトリへのパスを取得するには、いくつかの方法があります。
%APPDATA%
環境変数を使用するSHGetFolderPath
で呼び出すCSIDL_APPDATA
プログラム内からパスを取得するための最良の方法は何ですか?環境変数を使用する際の落とし穴はありますか?
XP、Vista、および今後のバージョンで最も安全な方法はどれですか?
呼び出しSHGetFolderPath()
が最も適切で移植可能な方法であることをお勧めします。環境変数を読み取る、または (さらに悪いことに) レジストリから抽出しようとするなどの代替手段は、将来つまずく可能性があります。
Raymond Chen は、レジストリからそのようなパスを取得することがなぜ悪い考えなのかを説明する記事を書いています。
string appDataPath =
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Environment.SpecialFolder.ApplicationData は単なる列挙型であるため、GetFolderPath メソッドを使用して実際のパスを取得する必要があります。
.NETでプログラミングしている場合は、次を使用できます。
string appDataPath = Environment.SpecialFolder.ApplicationData;
誰かが疑問に思っている場合、Rubyではコマンドは次のようになります。
appDataPath = ENV['APPDATA']
Pythonの重要な違いの1つは、Unicodeファイルパスの場合ctypes.windll.shell32.SHGetFolderPathW
、Unicode文字列を返すのに対しos.environ['APPDATA']
、バイト文字列を返すことです。