gpt4 book ai didi

c++ - 如何从文件名 vector 中删除隐藏文件?

转载 作者:行者123 更新时间:2023-11-28 00:12:32 33 4
gpt4 key购买 nike

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

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

这是代码的一部分:

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);
}

关于c++ - 如何从文件名 vector 中删除隐藏文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238368/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com