c++遍历文件夹中的图片(或文件)

本文展示了一个使用C++进行文件搜索的简单程序实例。该程序利用了_findfirst和_findnext函数来查找指定目录下的所有.jpg文件,并打印出文件名。通过这个例子,读者可以了解到如何在C++中实现基本的文件搜索功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
#include<io.h>

using namespace std;

void main()
{
   char *filename = "D:\\MyBin\\pic\\*.jpg";

   struct _finddata_t fileinfo;
   long handle;
   handle = _findfirst(filename,&fileinfo);
   if(handle == -1) cout<<"fail..."<<endl;
   else
    cout<<fileinfo.name<<endl;
   while(!_findnext(handle,&fileinfo))
   {
    cout<<fileinfo.name<<endl;
   }
   _findclose(handle);
   system("pause");
}


结果如图

<think>好的,我需要帮助用户了解如何在C++遍历文件夹中的txt文件。首先,我得考虑不同的操作系统,因为Windows和Linux/macOS下的方法不同。用户可能用的是Windows,所以先介绍Windows的API方法,比如FindFirstFile和FindNextFile。需要解释这些函数的使用步骤,并给出示例代码。同时,要提醒路径中的双反斜杠问题。 然后,考虑到C++17引入了filesystem库,这也是一个跨平台的解决方案。需要说明如何使用std::filesystem::directory_iterator,并展示示例代码。这里要提到编译时需要支持C++17,以及链接相应的库。 用户可能需要知道两种方法的优缺点,比如传统API的兼容性,和filesystem库的便捷性。需要分点说明,结构清晰。同时,检查代码中的关键点,比如文件扩展名的判断是否正确,路径处理是否合适。 最后,确保回答用中文,避免使用Markdown,行内公式用$...$,独立公式用$$...$$,但这个问题可能不涉及数学公式,所以重点放在代码和步骤上。注意语法正确,逻辑连贯,帮助用户逐步解决问题。</think>在C++遍历文件夹的txt文件,可以通过以下两种方法实现: 1. **Windows平台API方法(传统方式)** ```cpp #include <windows.h> #include <iostream> #include <string> void TraverseTxtFiles(const std::string& folderPath) { std::string searchPath = folderPath + "\\*.txt"; WIN32_FIND_DATAA findData; HANDLE hFind = FindFirstFileA(searchPath.c_str(), &findData); if (hFind == INVALID_HANDLE_VALUE) { std::cerr << "未找到文件" << std::endl; return; } do { if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { std::cout << "找到文件: " << findData.cFileName << std::endl; } } while (FindNextFileA(hFind, &findData)); FindClose(hFind); } ``` 2. **C++17跨平台方法(推荐)** ```cpp #include <filesystem> #include <iostream> namespace fs = std::filesystem; void TraverseTxtFiles(const std::string& folderPath) { try { for (const auto& entry : fs::directory_iterator(folderPath)) { if (entry.is_regular_file() && entry.path().extension() == ".txt") { std::cout << "找到文件: " << entry.path().filename() << std::endl; } } } catch (const fs::filesystem_error& e) { std::cerr << "错误: " << e.what() << std::endl; } } ``` **使用说明:** 1. Windows API方法需注意: - 仅适用于
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值