Winapi 我想在矢量格式的代码打印和显示所有的C驱动器文件

Winapi 我想在矢量格式的代码打印和显示所有的C驱动器文件,winapi,vector,Winapi,Vector,我想要矢量格式的代码 打印和显示所有C驱动器文件 请帮助您需要在自己的代码中手动枚举文件系统。可以对枚举找到的每个文件夹/文件执行任何操作 查看Win32 API和函数 或者在C++17及更高版本中,查看库,例如类。您可以通过和API遍历整个目录,并在遍历过程中将文件路径添加到所需的数据结构中,例如vector 以下是一个示例: std::vector<std::wstring> fileVector; struct HandleWrapper { HANDLE hFind;

我想要矢量格式的代码 打印和显示所有C驱动器文件
请帮助

您需要在自己的代码中手动枚举文件系统。可以对枚举找到的每个文件夹/文件执行任何操作

查看Win32 API和函数


或者在C++17及更高版本中,查看库,例如类。

您可以通过和API遍历整个目录,并在遍历过程中将文件路径添加到所需的数据结构中,例如vector

以下是一个示例:

std::vector<std::wstring> fileVector;
struct HandleWrapper
{
    HANDLE hFind;
    ~HandleWrapper() { if (hFind != INVALID_HANDLE_VALUE) ::FindClose(hFind); }
} ;
void findFiles(const std::wstring& spath)
{
    HandleWrapper wrapper;
    WIN32_FIND_DATA FindFileData;
    std::wstring sourcepath = spath + std::wstring(L"\\*.*");
    wrapper.hFind = FindFirstFile(sourcepath.c_str(), &FindFileData);
    if (wrapper.hFind != INVALID_HANDLE_VALUE)
    {
        do
        {
            if (std::wstring(FindFileData.cFileName) == L"." || std::wstring(FindFileData.cFileName) == L"..") continue;
            std::wstring fullpath = std::wstring(spath) + L"\\" + FindFileData.cFileName;
            if ((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
            {
                findFiles(fullpath);
            }
            else
            {
                fileVector.push_back(FindFileData.cFileName);
            }
        } while (FindNextFile(wrapper.hFind, &FindFileData));
    }
}
std::vector fileVector;
结构手柄
{
处理高频风;
~handleRapper(){if(hFind!=无效的句柄值)::FindClose(hFind);}
} ;
无效FindFile(常数标准::wstring和spath)
{
手摇包装机;
WIN32_FIND_DATA FindFileData;
std::wstring sourcepath=spath+std::wstring(L“\\*.*);
wrapper.hFind=FindFirstFile(sourcepath.c_str(),&FindFileData);
if(wrapper.hFind!=无效的\u句柄\u值)
{
做
{
如果(std::wstring(FindFileData.cFileName)==L.“| | std::wstring(FindFileData.cFileName)==L.”,则继续;
std::wstring fullpath=std::wstring(spath)+L“\\”+FindFileData.cFileName;
if((FindFileData.dwFileAttributes和文件属性目录))
{
FindFile(完整路径);
}
其他的
{
fileVector.push_back(FindFileData.cFileName);
}
}while(FindNextFile(wrapper.hFind,&FindFileData));
}
}

此示例使用矢量保存路径中的所有文件,然后您可以执行所需的后续操作。

什么是矢量格式的
代码