您的位置:

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中。

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

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

2023-01-03
关于c语言实现后序非递归遍历,前序遍历非递归实现

2022-11-24
后序遍历二叉树的递归算法c语言,实现二叉树的后序遍历的非递归

2023-01-03
python递归遍历文件目录下,python递归遍历文件夹

2022-11-16
非递归c语言图,简单的递归例子c语言

2022-11-22
c语言中前序遍历,先序遍历c语言

2022-12-01
二叉树层序遍历递归python(递归层次遍历二叉树)

2022-11-16
输出二叉树的层次遍历c语言,遍历二叉树C语言

2023-01-04
php递归遍历显示,php的递归

2022-12-02
二叉树的前序遍历c语言,二叉树前序遍历c语言代码

2022-11-25
c语言层序遍历创建二叉树,二叉树的建立与遍历完整代码C语言

2022-11-23
c语言深度优先二叉树遍历,深度优先遍历类似于二叉树的层次遍历

本文目录一览: 1、急急急!求C语言的数据结构二叉树递归遍历程序! 2、C语言二叉树的遍历。 3、C语言数据结构“遍历二叉树” 4、二叉树的创建和遍历 急急急!求C语言的数据结构二叉树递归遍历程序!

2023-12-08
层次遍历构建二叉树c语言,c语言二叉树的创建与遍历

2023-01-06
c语言实现文件遍历,c语言遍历文件内容

2022-11-27
c语言递归递推,c语言递推与递归

2022-11-27
dfs非递归java(DFS非递归算法)

2022-11-15
普通树的深度遍历c语言,树的层次遍历c语言

2023-01-04
c语言遍历文件内容,C语言遍历目录

2023-01-04
Js递归遍历树结构

2023-05-21
递归c语言例子,递归 C语言

2022-11-23