使用Shell API读取路径设置

    最近编码,在取用户文档数据目录时,遇到问题:
    我的做法是:<系统盘> + "/Documents and Settings/" + <用户名> + "/Application Data/"
    为啥这么麻烦,因为当时我没有找到合适的API,有什么问题呢?
    问题出在用户名,假如我的用户名是Stone,但文档数据目录却有可能存在两种,一是:Stone,
还有可能是 Stone.域名。但实际上Stone都是域用户。出现此情况的原因不明。而取用户名的函数用
的是 GetUserName(也试过其它),域名当然也可以取出,但何时带域名,何时不带域名的规律不得而
知。
    所以,还是只能去查到API,其实Windows Shell API有此类函数,只不过使用比较特殊。
    代码如下:

    所以,还是只能去查到API,其实Windows Shell API有此类函数,只不过使用比较特殊。
    代码如下: 

    LPITEMIDLIST pidl;
    SHGetSpecialFolderLocation(NULL,CSIDL_APPDATA,&pidl);
    if ( pidl ) {
       TCHAR szPathName[1024];
       SHGetPathFromIDList(pidl,szPathName);
       LPMALLOC pMalloc; 
       SHGetMalloc( &pMalloc );
       pMalloc->Free(pidl);
    } 

    更换其中参数CSIDL_APPDATA,可以得到很多的系统设置值。用此方法,将前文所讲的判定给了
API,不再有问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值