0

Windowsユーザーのプロファイルパスの親フォルダーを取得しようとしています。しかし、これを使用してこれを取得するための「パラメーター」が見つかりませんでした。SHGetSpecialFolderPathこれまでのところ、を使用していCSIDL_PROFILEます。

予想されるパス:

Win7-「C:\Users」

Windows XP-「C:\DocumentsandSettings」

4

2 に答える 2

1

ユーザーへのパスを表示する以外のほとんどの目的では、問題のパスに追加する"\\.."(または"..\\"バックスラッシュで終わる場合)ように機能する必要があります。

于 2012-07-12T19:28:10.937 に答える
0

シェルライブラリバージョン6.0を使用すると、CSIDL_PROFILES(混同しないでくださいCSIDL_PROFILE)必要なものが得られます。この値は削除されました(ここを参照)。独自の回避策を使用する必要があります。

以前のバージョンでは、可能なパス区切り文字を探すなど、独自の回避策を実装する必要があります。つまり\/Windowsで、最後の文字列で文字列を終了する必要があります。これの単純なバージョンでは、strrchr(またはwcsrchr)を使用して円記号を見つけ、文字列が書き込み可能であると想定して、その場所で文字列を終了できます。

例:

char* path;
// Retrieve the path at this point, e.g. "C:\\Users\\username"
char* lastSlash = strrchr(path, '\\');
if(!lastSlash)
  lastSlash = strrchr(path, '/');
if(lastSlash)
  *lastSlash = 0;

またはもちろんGetProfilesDirectory(それは私を逃した)あなたがこの答えへのコメントで指摘した。

于 2012-07-12T18:32:28.463 に答える