在我的文档中创建文件夹

时间:2013-11-26 20:28:18

标签: c++ windows winapi visual-c++

我在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的安全选项或者我做错了什么

1 个答案:

答案 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或更高版本。