如何解决C++ Windows 文件搜索产生
我需要两个函数:
为此,我显然需要遍历所有文件。 我有以下代码可以正常工作,并且打印所有文件递归。
void FindFile(const std::wstring &directory)
{
std::wstring tmp = directory + L"\\*";
WIN32_FIND_DATAW file;
HANDLE search_handle = FindFirstFileW(tmp.c_str(),&file);
if (search_handle != INVALID_HANDLE_VALUE)
{
std::vector<std::wstring> directories;
do
{
if (file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if ((!lstrcmpW(file.cFileName,L".")) || (!lstrcmpW(file.cFileName,L"..")))
continue;
}
tmp = directory + L"\\" + std::wstring(file.cFileName);
std::wcout << tmp << std::endl;
if (file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
directories.push_back(tmp);
}
while (FindNextFileW(search_handle,&file));
FindClose(search_handle);
for(std::vector<std::wstring>::iterator iter = directories.begin(),end = directories.end(); iter != end; ++iter)
FindFile(*iter);
}
}
问题是 - 我还需要按文件内容搜索文件,为此我需要复制该代码并稍作修改,这将导致代码重复 - 这很糟糕。
我想要一个函数来生成目录下的文件名,然后其他两个函数将能够使用它:
我找不到关于如何在 C++ 中实现这一点的任何好的信息(例如,在 Python 中似乎很容易)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。