c语言非递归遍历文件夹,非递归层序遍历

本文目录一览:

在windows下 怎么用c语言遍历文件夹?要用纯c的

1、操作系统中有相关的API函数,可以读取目录中所有的文件名字,以及时间属性信息,把这些信息读出来,直接依次遍历即可。

2、例程:

#include”stdio.h”

#include”io.h”

int main()

{

 struct _finddata_t files;

 int File_Handle;

 int i=0;

 File_Handle = _findfirst(“c:/temp/*.txt”,files);

 if(File_Handle==-1)

 {

 printf(“error\n”);

 return 0;

 }

 do

 {

 printf(“%s \n”,files.name);

 i++;

 }while(0==_findnext(File_Handle,files));

 _findclose(File_Handle);

 printf(“Find %d files\n”,i);

 return 0;

}

请我如何c语言遍历文件夹

#include windows.h

/************************************************/

*参数说明:

char *pszDestPath为需要遍历的目标路径

/************************************************/

EnmuDirectory(char *pszDestPath)

{

//此结构说明参MSDN

WIN32_FIND_DATA FindFileData;

//查找文件的句柄

HANDLE hListFile;

//绝对路径,例:c:\windows\system32\cmd.exe

char szFullPath[MAX_PATH];

//相对路径

char szFilePath[MAX_PATH];

//构造相对路径

wsprintf(szFilePath, “%s\\*”, pszDestPath);

//查找第一个文件,获得查找句柄,如果FindFirstFile返回INVALID_HANDLE_VALUE则返回

if((hListFile = FindFirstFile(szFilePath, FindFileData)) == INVALID_HANDLE_VALUE)

{

//查找文件错误

return 1;

}

else

{

do

{

//过滤.和..

//“.”代表本级目录“..”代表父级目录

if( lstrcmp(FindFileData.cFileName, TEXT(“.”)) == 0 ||

lstrcmp(FindFileData.cFileName, TEXT(“..”)) == 0 )

{

continue;

}

//构造全路径

wsprintf(szFullPath, “%s\\%s”, pszDestPath, FindFileData.cFileName);

//读取文件属性,如果不是文件夹

if(!(FindFileData.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY))

{

//这里你可以自己添加分析是某种类型文件的代码。可以根据

//扩展名分析。

//这里有个实例,你可以看看

//有必要初始化一下

char *pszFileType = NULL;

//把pszFileType指向cFileName的倒数第三个数符。因为一般扩展名长为3个字符。

//当然,你也可以用其它方法分析扩展名。或倒序查“.”

pszFileType = (FindFileData.cFileName[strlen(FindFileData.cFileName) – 3]);

//如果是jpg结尾的文件

if(!stricmp(pszFileType, “jpg”))

{

FILE *fp;

//或许这里打开C:\\data.txt不应该用”w+”,你可试着来

fp = fopen(“c:\\data.txt”, “w+”);

if(fp) fputs(szFullPath, fp);

fclose(fp);

}

}

//如果是文件夹,则递归调用EnmuDirectory函数

if(FindFileData.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY)

{

EnmuDirectory(szFullPath);

}

//循环,查找下一个文件

}while(FindNextFile(hListFile, FindFileData));

}

//关闭句柄

FindClose(hListFile);

//清空结构。可有可无的一句代码。函数退出会自动清空。

ZeroMemory(FindFileData, sizeof(FindFileData));

return 0;

}

这是windows api版的,还有MFC版的和C版的。要的话来找我Q:503267714

如何在linux系统中用C语言编程实现以非递归的方式查询指定目录下所有子目录的全部文件并保存文件名?

把迭代得到的非文件文件夹项,即子目录保存到一个stack中。

随后逐个弹出栈顶元素并迭代之,就实现了以非递归方式遍历文件夹。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/312997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-06 15:17
下一篇 2025-01-06 15:17

相关推荐

  • Idea新建文件夹没有java class的解决方法

    如果你在Idea中新建了一个文件夹,却没有Java Class,应该如何解决呢?下面从多个方面来进行解答。 一、检查Idea设置 首先,我们应该检查Idea的设置是否正确。打开Id…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python遍历集合中的元素

    本文将从多个方面详细阐述Python遍历集合中的元素方法。 一、for循环遍历集合 Python中,使用for循环可以遍历集合中的每个元素,代码如下: my_set = {1, 2…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Python如何遍历字典中的key和value

    本文将详细讲解Python中如何遍历字典中的key和value,包括多种遍历方式以及在遍历过程中的一些应用场景。 一、遍历字典中的key和value 在Python中,字典是一种无…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • 台阶走法递归

    台阶走法递归是一个经典的递归问题,在计算机算法中有着广泛的应用。本篇文章将从递归的思想出发,详细分析如何解决这个问题。 一、递归基础知识 递归是指一个函数直接或间接地调用自身。递归…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29

发表回复

登录后才能评论