プログラムからOneDrive/ドキュメントのフルパスを得る方法はありますか?

MFCプログラマー 141 評価のポイント
2024-08-31T07:37:12.0333333+00:00

開発環境は Windows11/ VisualC++(MFC)です。

OSのドキュメントフォルダをOneDrive以外に変更している状態で

OneDrive下のドキュメントフォルダのフルパスを得る必要が出てきました。

日本語版だと フォルダ名は "ドキュメント"、英語版は "Documents"になっていますが、それ以外の国で違っているようなので、プログラムからフルパスを得たいと考えています。

得る方法があれば教えてください。

C++
C++
C プログラミング言語の拡張機能として作成された高レベルの汎用プログラミング言語。低レベルのメモリ操作機能に加えて、オブジェクト指向、汎用、関数型の機能を備えています。
23 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. gekka 9,916 評価のポイント MVP
    2024-08-31T08:47:17.0866667+00:00

    HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{24D89E24-2F19-4534-9DDE-6A6671FBB8FE}

    GUID部分はKNOWNFOLDERIDのFOLDERID_SkyDriveを参考に。

    試しにOneDriveを新規環境にいれてみたら、環境変数(HKEY_CURRENT_USER\Environment)に%OneDrive%と%OneDriveConsumer%ができたので、複数アカウントある場合はどうなるかはわかりません。

    1 人がこの回答が役に立ったと思いました。

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. SurferOnWww 3,376 評価のポイント
    2024-08-31T08:34:59.2266667+00:00

    「c# onedrive full path」などをキーワードにググって調べてみましたか? 以下のような記事がヒットします。

    Get OneDrive path in Windows

    上の記事の情報では目的が果たせないなら、どこがダメか詳しく書いてください。また、他にもいろいろヒットするので、自分でも調べてください。

    0 件のコメント コメントはありません

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。