我在Windows My Documents目录中创建目录结构时遇到问题。我用
ExpandEnvironmentStrings(L"%USERPROFILE%\\Documents",dir,MAX_PATH);
获取目录然后我在那里创建一个新目录
CreateDirectoryW(dir,NULL)
然后在那里我想创建另一个目录,所以本质上我想要Documents \ foo \ bar但是当我通过资源管理器侧的库进入foo目录时,除非我转到C,否则找不到'bar': \ users \ xxx \ Documents \ foo然后它在那里。此外,如果我去Libraries \ Documents \ foo并右键单击 - > New->文件夹不是一个选项。
我想知道我是否应该使用CreateDirectory的安全选项或者我做错了什么
答案 0 :(得分:1)
如果要创建目录树,可以使用SHCreateDirectoryEx。以下代码在我的计算机上运行良好。
#include <iostream>
#include <Windows.h>
#include <Shlobj.h>
#include <Shlwapi.h>
int main()
{
char path[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_COMMON_DOCUMENTS, NULL, 0, path)))
{
PathAppend(path, "foo\\bar");
if (SHCreateDirectoryEx(NULL, path, NULL) != ERROR_SUCCESS)
{
std::cout << "Error: " << GetLastError();
}
}
else
{
std::cout << "Error: " << GetLastError();
}
}
请注意,这仅适用于Windows 2000 Professional或更高版本。