求一个windows下的纯C语言实现的文件夹遍历程序,要可以遍历子文件夹,不要unix下的和C++的。

 我来答
returnsr
2011-03-31 · TA获得超过296个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:166万
展开全部
// 这是我以前写的一个,你参考参考 要用到windows API 函数

#include <windows.h>
#include <stdio.h>
#include <string.h>
#define LEN 1024
// 深度优先递归遍历目录中所有的文件
BOOL DirectoryList(LPCSTR Path)
{
WIN32_FIND_DATA FindData;
HANDLE hError;
int FileCount = 0;
char FilePathName[LEN];
// 构造路径
char FullPathName[LEN];
strcpy(FilePathName, Path);
strcat(FilePathName, "\\*.*");
hError = FindFirstFile(FilePathName, &FindData);
if (hError == INVALID_HANDLE_VALUE)
{
printf("搜索失败!");
return 0;
}
while (::FindNextFile(hError, &FindData))
{
// 过虑.和..
if (strcmp(FindData.cFileName, ".") == 0
|| strcmp(FindData.cFileName, "..") == 0 )
{
continue;
}

// 构造完整路径
wsprintf(FullPathName, "%s\\%s", Path,FindData.cFileName);
FileCount++;
// 输出本级的文件
printf("\n%d %s ", FileCount, FullPathName);

if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
printf("<Dir>");
DirectoryList(FullPathName);
}

}
return 0;
}

void main()
{
DirectoryList("G:");
}
百度网友e651196
2011-03-31 · TA获得超过141个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:154万
展开全部
伪代码:
void function(LPCTSTR lpszPath)
{
开始查找;
if (没有找到文件)
return;
do
{
if (找到的文件是目录)
function(找到的目录);
else
对文件进行操作;
} while (查找下一个文件并成功);
}
实现这个算法所需要用到的API函数有:
·FindFirstFile;
·FindNextFile;

具体函数的用法 查看下msdn吧 或者google一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z85525006
2011-03-30 · TA获得超过1003个赞
知道小有建树答主
回答量:672
采纳率:0%
帮助的人:568万
展开全部
我只能告诉你原理,你可以自己查相关的函数套用.!~!~!@@@

你先要切换到当前目录,就是你要遍历的地方.
这种方法是用递归,如果是文件,一直找下去.直到没有文件.这里也需要函数去判断这个文件是文件夹还是程序.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dyd653996724
2011-03-31 · TA获得超过200个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:177万
展开全部
哥们 unix环境编程 也就是APUE里面有源代码 你可以照着改改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式