私はc ++ MFCでプログラミングしています。
「C:\ windows」「c:\ programfiles」フォルダパスを取得したい。
ユーザーがc:\ windows0などの他のフォルダーにウィンドウをセットアップする場合があります。
ウィンドウの絶対パスとプログラムファイルのパスを取得するためのAPIはありますか?
どうもありがとう!
Win32APIの使用>
Windowsフォルダーの場合:
TCHAR windir[MAX_PATH];
GetWindowsDirectory(windir, MAX_PATH);
プログラムファイルの場合:
TCHAR pf[MAX_PATH];
SHGetSpecialFolderPath(
0,
pf,
CSIDL_PROGRAM_FILES,
FALSE );
どこ MAX_PATH
はWindowsヘッダーから取得され、バッファーが最長(UNC以外)のパスに対して十分な長さであることを保証します。
また、SHGetSpecialFolderPath
を使用すると、3番目のパラメーターをこの list のいずれかに置き換えるだけで、Windowsフォルダーを含む他の「特別な」フォルダーを取得できることに注意してください。
GetWindowsDirectory
: http://msdn.Microsoft.com/en-us/library/ms724454(VS.85).aspxSHGetSpecialFolderPath
: http://msdn.Microsoft.com/en-us/library/bb762204(VS.85).aspxVista +では、 SHGetKnownFolderPath
はSHGetFolderPath
とSHGetSpecialFolderPath
の代わりになりますが、古い関数との下位互換性が必要な場合は、古い関数を引き続き使用できます。 Windowsのバージョン。
これらのほとんどはSHGetFolderPathから取得されますが、GetSystemDirectory()はC:\ Windows\System32の絶対位置を返します。 GetWindowsDirectory()は使用しないでください。それはもうあなたが望むことをしません。