C语言实现遍历文件夹中的文件

 更新时间:2024年02月20日 10:20:47   作者:crazybobo1207  
这篇文章主要为大家详细介绍了如何使用C语言实现遍历文件夹中的文件,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下

文件目录如下,文件夹里还有一些txt文件未展示出来。

使用递归实现,深度优先遍历文件夹中的文件。

代码如下,用了一点C++的语法。

#include <io.h>
#include <iostream>  
using namespace std;
 
#define MAX_PATH_LENGTH 100
 
int Traverse(char dir[]);
 
int main()
{
    char dir[MAX_PATH_LENGTH] = "e:\\test\\*.*";
 
    Traverse(dir);
 
    return 0;
}
 
int Traverse(char dir[])
{
    intptr_t handle;
    _finddata_t findData;
 
    handle = _findfirst(dir, &findData);
    if (handle == -1)
    {
        cout << "no file exsit\n";
        return -1;
    }
 
    do
    {
        if ((findData.attrib & _A_SUBDIR) && (strcmp(findData.name, ".") != 0) && (strcmp(findData.name, "..") != 0))
        {
            //it is a directory
            cout << "subdir:" << findData.name << endl;
            char sub_dir[MAX_PATH_LENGTH] = { 0 };
            string s(dir);
            sprintf_s(sub_dir, "%s%s\\*.*", s.substr(0, s.length() - 3).c_str(), findData.name);
            Traverse(sub_dir);
        }
        else if (strcmp(findData.name, ".") == 0 || strcmp(findData.name, "..") == 0)
        {
            //it is . or .. , do nothing
        }
        else
        {
            //it is a file
            cout << "file:" << findData.name << endl;
        }
    } while (_findnext(handle, &findData) == 0);
 
    _findclose(handle);
}

运行结果如下:

到此这篇关于C语言实现遍历文件夹中的文件的文章就介绍到这了,更多相关C语言遍历文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++ 继承详解及实例代码

    C++ 继承详解及实例代码

    这篇文章主要介绍了C++ 继承详解,这里整理了详细的资料及实例代码,有需要的小伙伴可以参考下
    2016-09-09
  • C++类的定义和对象的创建详解

    C++类的定义和对象的创建详解

    本篇文章重点讲解了两种创建对象的方式:一种是在栈上创建,形式和定义普通变量类似;另外一种是在堆上使用 new 关键字创建,必须要用一个指针指向它,下面和小编一起来学习下面为文章的内容
    2021-09-09
  • C++深入分析讲解智能指针

    C++深入分析讲解智能指针

    为了解决内存泄漏的问题,C++中提出了智能指针。内存泄漏的产生原因有很多,即使我们正确的使用malloc和free关键字也有可能产生内存泄漏,如在malloc和free之间如果存在抛异常,那也会产生内存泄漏。这种问题被称为异常安全
    2022-05-05
  • linux下C语言中的mkdir函数与rmdir函数

    linux下C语言中的mkdir函数与rmdir函数

    以下是对C语言中的mkdir函数与rmdir函数进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • MFC程序对文件的处理方法

    MFC程序对文件的处理方法

    这篇文章主要介绍了MFC程序对文件的处理方法,需要的朋友可以参考下
    2014-08-08
  • c语言switch反汇编的实现

    c语言switch反汇编的实现

    本文主要介绍了c语言switch反汇编,在分支较多的时候,switch的效率比if高,在反汇编中我们即可看到效率高的原因,感兴趣的可以了解一下
    2021-06-06
  • C++ Primer的变量和基本类型详解

    C++ Primer的变量和基本类型详解

    这篇文章主要为大家介绍了C++ Primer,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • C++实现简单猜数字小游戏

    C++实现简单猜数字小游戏

    这篇文章主要为大家详细介绍了C++实现简单猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 浅谈Qt信号与槽的各种连接方式

    浅谈Qt信号与槽的各种连接方式

    信号和槽是Qt特有的信息传输机制,本文主要介绍了浅谈Qt信号与槽的各种连接方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • C语言 实现N阶乘的程序代码

    C语言 实现N阶乘的程序代码

    本篇文章是对c语言中实现N阶乘的程序代码进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论