gpt4 book ai didi

c++ - 是否有用于文件搜索的跨平台/C++ 库? (在硬盘上)

转载 作者:太空狗 更新时间:2023-10-29 20:18:51 26 4
gpt4 key购买 nike

是否有用于文件搜索的跨平台 C\C++ 库? (在硬盘上)我需要的很简单——能够在用户计算机上的所有文件夹和子文件夹中找到大小 >= 200kb 的所有图像。

如何做这样的事情?谁能帮我?请。

最佳答案

Boost.Filesystem 是一个很棒的库。这是我前段时间写的代码,你可以在知道库后轻松更改搜索条件(你可以查询大小和扩展名):

#include <iostream>
#include <string>
#include <vector>
#include <boost/filesystem.hpp>

using namespace std;
using namespace boost::filesystem;

void find_file(const path& root, const string& file_name, vector<path>& found_files)
{
directory_iterator current_file(root), end_file;
bool found_file_in_dir = false;
for( ; current_file != end_file; ++current_file)
{
if( is_directory(current_file->status()) )
find_file(*current_file, file_name, found_files);
if( !found_file_in_dir && current_file->leaf() == file_name )
{
// Now we have found a file with the specified name,
// which means that there are no more files with the same
// name in the __same__ directory. What we have to do next,
// is to look for sub directories only, without checking other files.
found_files.push_back(*current_file);
found_file_in_dir = true;
}
}
}

int main()
{
string file_name;
string root_path;
vector<path> found_files;

std::cout << root_path;
cout << "Please enter the name of the file to be found(with extension): ";
cin >> file_name;
cout << "Please enter the starting path of the search: ";
cin >> root_path;
cout << endl;

find_file(root_path, file_name, found_files);
for( std::size_t i = 0; i < found_files.size(); ++i)
cout << found_files[i] << endl;
}

关于c++ - 是否有用于文件搜索的跨平台/C++ 库? (在硬盘上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993680/

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