#include <iostream>
#include <filesystem>
#include <cstdint>
#include <Windows.h>
#include <Windowsx.h>
#include <ShlObj.h>
//http://y...content-available-to-author-only...u.net/computer/program/sdk/base/SHGetSpecialFolderPath/csidl.html
std::filesystem::path GetWindowsSpecalPass(int CSIDL) {
constexpr std::uintmax_t L = (0x7fffff)*sizeof(TCHAR);//fuse buffer...
TCHAR CH[L] = {0,};
if (SHGetSpecialFolderPath(nullptr, CH, CSIDL,0) == 0) { return {}; }
return { CH };
}
int main() {
std::filesystem::path p = GetWindowsSpecalPass(CSIDL_PERSONAL);
/**/
for (const std::filesystem::path& o : std::filesystem::directory_iterator(p)) {
std::cout << o << std::endl;
}
/**/
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZmlsZXN5c3RlbT4KI2luY2x1ZGUgPGNzdGRpbnQ+CgojaW5jbHVkZSA8V2luZG93cy5oPgojaW5jbHVkZSA8V2luZG93c3guaD4KI2luY2x1ZGUgPFNobE9iai5oPgoKLy9odHRwOi8veS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4udS5uZXQvY29tcHV0ZXIvcHJvZ3JhbS9zZGsvYmFzZS9TSEdldFNwZWNpYWxGb2xkZXJQYXRoL2NzaWRsLmh0bWwKCnN0ZDo6ZmlsZXN5c3RlbTo6cGF0aCBHZXRXaW5kb3dzU3BlY2FsUGFzcyhpbnQgQ1NJREwpIHsKCWNvbnN0ZXhwciBzdGQ6OnVpbnRtYXhfdCBMID0gKDB4N2ZmZmZmKSpzaXplb2YoVENIQVIpOy8vZnVzZSBidWZmZXIuLi4KCVRDSEFSIENIW0xdID0gezAsfTsKCglpZiAoU0hHZXRTcGVjaWFsRm9sZGVyUGF0aChudWxscHRyLCBDSCwgQ1NJREwsMCkgPT0gMCkgeyByZXR1cm4ge307IH0KCglyZXR1cm4geyBDSCB9Owp9CgoKaW50IG1haW4oKSB7CglzdGQ6OmZpbGVzeXN0ZW06OnBhdGggcCA9IEdldFdpbmRvd3NTcGVjYWxQYXNzKENTSURMX1BFUlNPTkFMKTsKCS8qKi8KCWZvciAoY29uc3Qgc3RkOjpmaWxlc3lzdGVtOjpwYXRoJiBvIDogc3RkOjpmaWxlc3lzdGVtOjpkaXJlY3RvcnlfaXRlcmF0b3IocCkpIHsKCQlzdGQ6OmNvdXQgPDwgbyA8PCBzdGQ6OmVuZGw7Cgl9CgkvKiovCglyZXR1cm4gMDsKfQ==