问题描述
我需要两个函数:
为此,我显然需要遍历所有文件。 我有以下代码可以正常工作,并且打印所有文件递归。
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 (将#修改为@)