如何从文件名向量中删除隐藏文件?

How to delete hidden files from a vector of file names?

在我正在编写的一个程序中,有一个函数可以从特定目录中获取所有文件名并将它们放入一个向量中,以便稍后在程序中使用它们。

但是,这也会抓取恰好位于该文件夹中的任何隐藏文件。我试图让程序删除任何以“.”开头的文件,但这对我正在测试的文件夹不起作用(我仍然将“..”列为文件)。

代码部分如下:

while (handle != INVALID_HANDLE_VALUE)
{
     filenameList.push_back(search_data.cFileName);

    if (FindNextFile(handle, &search_data) == FALSE)
        break;
}

    //removes a lot of hidden files from the file list
    for (int i = 0; i < filenameList.size(); i++)
    {
        string hiddenCheck = filenameList[i];

        if (hiddenCheck[0] == '.') 
        {
            filenameList.erase(filenameList.begin() + i);
            i = 0;
        }

枚举文件时需要查看文件属性:

HANDLE handle = FindFirstFile(..., &search_data);
if (handle != NULL)
{
    do
    {
        // if not a directory, and not hidden...
        if ((search_data.dwFileAttributes & (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_HIDDEN)) == 0)
        {
            // add it to the list...
            filenameList.push_back(search_data.cFileName);
        }
    }
    while (FindNextFile(handle, &search_data));
    FindClose(handle);
}