c语言 dos 文件夹,如何dos 下遍历文件目录-程序员宅基地

技术标签: c语言 dos 文件夹  

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

首先先看两个函数

函数名: findfirst, findnext

功  能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件

用  法: int findfirst(char *pathname, struct ffblk *ffblk, int attrib);

int findnext(struct ffblk *ffblk);

程序例:

/* findnext example */

#include 

#include 

int main(void)

{

struct ffblk ffblk;

int done;

printf("Directory listing of *.* ");

done = findfirst("*.*",&ffblk,0);

while (!done)

{

printf("  %s ", ffblk.ff_name);

done = findnext(&ffblk);

}

return 0;

}

其中ffblk是一个结构体,其内容为:

struct    ffblk    ...{

char        ff_reserved[21];

char        ff_attrib;

unsigned    ff_ftime;

unsigned    ff_fdate;

long        ff_fsize;

char        ff_name[13];

};

ff_attrib有以下几种形式,可以做为findfirst的参数:

#define WILDCARDS 0x01

#define EXTENSION  0x02

#define FILENAME     0x04

#define DIRECTORY  0x08

#define DRIVE            0x10

若要遍历目录,findfirst的第三个参数应该为 0x10,则在ffblk中的ff_attrib会返回相应的属性.

void GetDirMd5(char* filePath)

{

struct ffblk fileInfo;

int done;

char filePathCpy[MAX_PATH];

char fullPath[MAX_PATH];

int tag = 0;

strcpy(filePathCpy, filePath);

done = findfirst(filePathCpy, &fileInfo, 0x10);

if(done)

{

printf("Directory not exit!\n");

return;

}

while(tag != -1 )

{

if(fileInfo.ff_attrib == 0x10) /* is a directory */

{

if( !strcmp(fileInfo.ff_name, "." ) || !strcmp(fileInfo.ff_name, ".."))

{

tag = findnext(&fileInfo );

continue;

}

strcpy(fullPath, filePathCpy);

fullPath[strlen( fullPath ) - strlen("*.*")] = '\0';

strcat(fullPath, fileInfo.ff_name);

strcat(fullPath, "\\*.*");

GetDirMd5(fullPath);

}

else /* is a file */

{

strcpy(fullPath, filePath);

fullPath[strlen(fullPath) - strlen("*.*")] = '\0';

strcat(fullPath, fileInfo.ff_name);

printf("%s", fullPath);

iFileNum += 1;

}

tag = findnext(&fileInfo);

}

}

注:粘代码时代码是有'\0'竟然粘不了!!

比如你遍历一下C盘下的Test目录,只需要GetDirMd5("C:\\Test\\*.8")就好了,呵呵�

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36480721/article/details/117270944

智能推荐

用Python实现RSA签名和验签_74p8.c om-程序员宅基地

文章浏览阅读1.1k次。RSA是一种非对称加密算法,简单理解就是两个密钥:一个公钥,一个私钥。 同时它也可以用来签名和验签,正好与加密相反。加密:公钥加密,私钥解密;签名:私钥签名,公钥验签。有意思的是有些人分不清公钥私钥的用处,这里提供一个思路: 用作加密时,密文泄露是无所谓的(相对而言),重要的是用于解密的密钥必须安全,所以用不公开的私钥来解密,用公钥来加密; 用作签名时,目的是防止别人伪造我的身份发信息,所以用私钥..._74p8.c om

如何判断自己是否适合学编程?Java零基础如何入门_怎么判断自己有没有干java开发的能力?-程序员宅基地

文章浏览阅读1.5k次。行业人人都想转IT,但你该如何判断自己是否适合学习编程呢?可以先从以下的几点衡量一下,看自己是否适合学习编程!1、有耐心如果你经常半途而废、三分钟热度、贪玩、脾气急躁,编程可能一点也不适合你。毕竟程序员经常一个bug改一天,没点耐心真坐不住!2、兴趣和毅力兴趣能带你入门,毅力能让你在长途跋涉中坚持下来。冰冻三尺非一日之寒,大家不要只看到技术大牛在解决问题时的轻松潇洒、深不可测,而是要知道他..._怎么判断自己有没有干java开发的能力?

SPGAN:Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity ReID阅读笔记-程序员宅基地

文章浏览阅读3.6k次。Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity for Person Re-identification作者:Weijian Deng, Liang Zheng 2018 CVPR和ZL团队另一篇作品CamStyle_image-image domain adaptation with preserved self-similarity and domain-diss

Vue获取浏览器唯一标识_vue获取设备唯一标识-程序员宅基地

文章浏览阅读5.3k次。登陆时候可能需要向后台传输一个唯一标识符具体实现思路如下:1、引入js2、写入3-最终打印出来结果,发送给后台_vue获取设备唯一标识

ARM开发环境下载地址大全_arm gcc 下载-程序员宅基地

文章浏览阅读2.6k次,点赞3次,收藏10次。arm gcc工具链下载简介_arm gcc 下载

【前端】【HTML】基础知识_html的-程序员宅基地

文章浏览阅读3.6k次,点赞6次,收藏42次。HTML指的是超文本语言,它是用来描述网页的的一种语言。HTML不是编程语言,而是一种标记语言。标记语言是一套标记标签。_html的

随便推点

计算机丢失MSVCP140.dll的解决方法分享_ida pro 计算机中丢失msvcp140.dll-程序员宅基地

文章浏览阅读132次。总之,计算机丢失MSVCP140.dll是一个比较常见的问题,但是通过以上方法,我们通常可以比较容易地解决这个问题。在解决问题的过程中,我们不仅可以提高自己的电脑技能,还可以更好地了解自己的电脑系统,从而提高使用效率。例如,如果你想要将它复制到一个名为“DLLs”的新文件夹中,只需右键单击MSVCP140.dll文件,然后选择“剪切”,最后右键单击“DLLs”文件夹,选择“粘贴”。3. 误删:在使用电脑的过程中,我们可能会不小心删除了一些重要的文件,包括MSVCP140.dll。卸载或更新引起冲突的软件。_ida pro 计算机中丢失msvcp140.dll

SpringBoot简单使用lombok_spring boot使用lambo-程序员宅基地

文章浏览阅读855次。前言: lombok有啥用?一句话说明白就是以前javaBean中的一些get,set,toString,构造方法等,在我们添加lombok后,只需要一个注解就能搞定,目的就是简化开发流程。环境: IDEA版本2017.3.1 x64, JDK1.8, SpringBoot2.1.1如何使用?一、导入lombok的jar包maven中导入:<!-- lombok工具简化get ..._spring boot使用lambo

【渝粤题库】陕西师范大学202521中国古代文学(三) 作业(高起专)_登金陵雨花台望大江艺术特色-程序员宅基地

文章浏览阅读4.9k次。《中国古代文学三》作业第一章 元曲的形成和兴盛一、填空题:1、我国的戏剧,其起源、形成,经历了漫长的时期。从先秦( )、汉魏( )、隋唐( )发展到宋代院本,表演要素日臻完善。2、元代创作的剧本,数量颇多。据统计,现存剧本名目,杂剧有( )多种,南戏有( )种。3、元代戏曲包含( )和( )两种主要形式。4、元代可分为南北两大戏剧圈,前期北方的活动中心在(_登金陵雨花台望大江艺术特色

不堪回首的青春回忆,用群晖NAS网络存储记住吧_群晖可以备份qq聊天记录吗-程序员宅基地

文章浏览阅读786次。青春是热血、朝气、尴尬等等名词的汇聚,对于90后来说非主流、大头贴等一堆不堪回首的记忆充满了我们的记忆。往往这些记忆都保存在了放着DJ等非主流音乐的空间中,永远封锁只对自己开放。随着QQ也开通了账号注销功能,保存在QQ空间的数据也不是永远存在了。虽然这是一段我们不堪回首的青春记忆,虽然现在最年轻的00后都已经19岁了,青春的世界不再属于90后了。但是回忆还是要存储下来的,可是值得90后回忆的不仅..._群晖可以备份qq聊天记录吗

private和public_class public和private-程序员宅基地

文章浏览阅读2.7k次。一、结构体/类的定义和实现分离,代码可读性更强(非必须)//xxx.h头文件struct Test{ int x; int y; int z; void Init(int x,int y,int z); void Function1(); void Function2(); void Function3();}//xxx.cpp#include<stdio.h>#include"structure.h"void Test::Init(int x, int y, _class public和private

php 上传图片 缩略图,PHP 图片上传类 缩略图-程序员宅基地

文章浏览阅读70次。/*** 上传图片*/class imgUpload{static protected $a;protected $formName; //表单名称protected $directory; //文件上传至目录protected $maxSize; //最大文件上传大小protected $canUpload; //是否可以上..._php上传图片 缩略图