我应该如何从给定的PATH搜索整个文件/文件夹,并在所有内容/目录中搜索特定的字符串?
我知道我必须以某种方式递归执行它,除非有一个功能可以搜索路径中的所有内容。而且,我必须打开找到的每个文件并检查其中的特定字符串。但是Visual Studio如何打开文件?它可以打开任何类型的文件,还是仅基于文本的文件?
到目前为止,我设法做到的是:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::experimental::filesystem;
void ShowFiles(string path)
{
for (auto &p : fs::directory_iterator(path))
cout << p.path().filename() << '\n';
}
int main()
{
ShowFiles("D:/TEST/testFOLDER/");
}
仅打印给定PATH中的文件夹/文件,而不打印其中的文件夹/文件。
编辑:我应该使用DIR *和dirent *吗?会容易吗?
答案 0 :(得分:2)
改为使用recursive_directory_iterator
。
要读取文件,请使用std::ifstream
。它已更新为在C ++ 17中采用path
对象。