技术标签: 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")就好了,呵呵�
文章浏览阅读1.1k次。RSA是一种非对称加密算法,简单理解就是两个密钥:一个公钥,一个私钥。 同时它也可以用来签名和验签,正好与加密相反。加密:公钥加密,私钥解密;签名:私钥签名,公钥验签。有意思的是有些人分不清公钥私钥的用处,这里提供一个思路: 用作加密时,密文泄露是无所谓的(相对而言),重要的是用于解密的密钥必须安全,所以用不公开的私钥来解密,用公钥来加密; 用作签名时,目的是防止别人伪造我的身份发信息,所以用私钥..._74p8.c om
文章浏览阅读1.5k次。行业人人都想转IT,但你该如何判断自己是否适合学习编程呢?可以先从以下的几点衡量一下,看自己是否适合学习编程!1、有耐心如果你经常半途而废、三分钟热度、贪玩、脾气急躁,编程可能一点也不适合你。毕竟程序员经常一个bug改一天,没点耐心真坐不住!2、兴趣和毅力兴趣能带你入门,毅力能让你在长途跋涉中坚持下来。冰冻三尺非一日之寒,大家不要只看到技术大牛在解决问题时的轻松潇洒、深不可测,而是要知道他..._怎么判断自己有没有干java开发的能力?
文章浏览阅读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
文章浏览阅读5.3k次。登陆时候可能需要向后台传输一个唯一标识符具体实现思路如下:1、引入js2、写入3-最终打印出来结果,发送给后台_vue获取设备唯一标识
文章浏览阅读2.6k次,点赞3次,收藏10次。arm gcc工具链下载简介_arm gcc 下载
文章浏览阅读3.6k次,点赞6次,收藏42次。HTML指的是超文本语言,它是用来描述网页的的一种语言。HTML不是编程语言,而是一种标记语言。标记语言是一套标记标签。_html的
文章浏览阅读132次。总之,计算机丢失MSVCP140.dll是一个比较常见的问题,但是通过以上方法,我们通常可以比较容易地解决这个问题。在解决问题的过程中,我们不仅可以提高自己的电脑技能,还可以更好地了解自己的电脑系统,从而提高使用效率。例如,如果你想要将它复制到一个名为“DLLs”的新文件夹中,只需右键单击MSVCP140.dll文件,然后选择“剪切”,最后右键单击“DLLs”文件夹,选择“粘贴”。3. 误删:在使用电脑的过程中,我们可能会不小心删除了一些重要的文件,包括MSVCP140.dll。卸载或更新引起冲突的软件。_ida pro 计算机中丢失msvcp140.dll
文章浏览阅读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
文章浏览阅读4.9k次。《中国古代文学三》作业第一章 元曲的形成和兴盛一、填空题:1、我国的戏剧,其起源、形成,经历了漫长的时期。从先秦( )、汉魏( )、隋唐( )发展到宋代院本,表演要素日臻完善。2、元代创作的剧本,数量颇多。据统计,现存剧本名目,杂剧有( )多种,南戏有( )种。3、元代戏曲包含( )和( )两种主要形式。4、元代可分为南北两大戏剧圈,前期北方的活动中心在(_登金陵雨花台望大江艺术特色
文章浏览阅读786次。青春是热血、朝气、尴尬等等名词的汇聚,对于90后来说非主流、大头贴等一堆不堪回首的记忆充满了我们的记忆。往往这些记忆都保存在了放着DJ等非主流音乐的空间中,永远封锁只对自己开放。随着QQ也开通了账号注销功能,保存在QQ空间的数据也不是永远存在了。虽然这是一段我们不堪回首的青春记忆,虽然现在最年轻的00后都已经19岁了,青春的世界不再属于90后了。但是回忆还是要存储下来的,可是值得90后回忆的不仅..._群晖可以备份qq聊天记录吗
文章浏览阅读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
文章浏览阅读70次。/*** 上传图片*/class imgUpload{static protected $a;protected $formName; //表单名称protected $directory; //文件上传至目录protected $maxSize; //最大文件上传大小protected $canUpload; //是否可以上..._php上传图片 缩略图