我的代码是否正确?它似乎可以编译,但不能正常工作。
CString testing = _T(" --url=") + cstring + _T(" --out=%USERPROFILE%\\snapshot.png");
我想将它指向用户文件夹,但仍然无法工作。
我的代码是否正确?它似乎可以编译,但不能正常工作。
CString testing = _T(" --url=") + cstring + _T(" --out=%USERPROFILE%\\snapshot.png");
我想将它指向用户文件夹,但仍然无法工作。
SHGetKnownFolderPath
。它使用KNOWNFOLDERID
values来识别您希望检索其路径的文件夹。在您的情况下,那将是FOLDERID_Profile
。SHGetSpecialFolderPath
function。它使用一个CSIDL值来识别您希望检索其路径的文件夹。同样,在您的情况下,那将是CSIDL_PROFILE
。CSIDL_APPDATA
或CSIDL_LOCAL_APPDATA
。如果您正在创建用户应该能够修改并将其视为自己的数据,则将该数据存储在用户文档文件夹(CSIDL_MYDOCUMENTS
)中是适当的。示例代码:
TCHAR szFolderPath[MAX_PATH];
if (!SHGetSpecialFolderPath(NULL, szFolderPath, CSIDL_APPDATA, FALSE))
{
// Uh-oh! An error occurred; handle it.
}
或者,使用MFC的CString
类:
CString buffer;
BOOL bRet = SHGetSpecialFolderPath(NULL, buffer.GetBuffer(MAX_PATH), CSIDL_APPDATA, FALSE);
buffer.ReleaseBuffer();
if (!bRet)
{
// Uh-oh! An error occurred; handle it.
}
TCHAR szBuf[MAX_PATH] = {0};
::GetEnvironmentVariable(_T( "USERPROFILE" ), szBuf, MAX_PATH);