C语言的文件扫描

news/2024/11/29 10:47:15/

/*
****************************************************************************
******文件扫描
******使用:向address变量输入要搜索的磁盘(亦或者目录地址)即可搜索目录下所有的文件(包括多层文件夹)
******如:输入 C:\\a*. 将会搜索a文件夹里所有的文件和文件夹,当a文件夹存在文件夹b,将会搜索b文件夹里所有的文件
******以此类推...
******by冬寂
*****************************************************************************
*/#include<stdio.h>
#include<io.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
#define max 10000int main()
{char*address[max]={"D:\\*.","E:\\*.","F:\\*."}; //搜索地址char*names[max]; //中转地址int i=0;int files=0; //记录每次循环扫描address得到的文件数量long Handle; //io.hstruct _finddata_t Fileinfo; //io.hwhile(1){while(address[i]!=NULL){if((Handle=_findfirst(address[i],&Fileinfo))!=-1L){char world[100];strcpy(world,address[i]);for(int i_world=strlen(world);i_world>0;i_world--){//printf("[%s]\n",world);if(world[i_world]=='\\'){world[i_world+1]='\0';//去掉搜索后缀以便于赋值给namesbreak;}}//printf("**********************%s:*********************\n",address[i]);while(_findnext(Handle,&Fileinfo)==0){if(Fileinfo.name[0]!='.'){names[files]=(char*)malloc(strlen(world)+strlen(Fileinfo.name)+1); //申请动态内存的大小为当前文件夹位置与搜素到的文件之和strcpy(names[files],world); //获取当前搜索的文件夹strcat(names[files],Fileinfo.name);//printf("%s %d\n",names[files],files);files++;}}//if_findclose(Handle);}i++;}//printf("\nfiles:%d\n\n",files);char sanmiao[100];strcpy(sanmiao,address[0]);sanmiao[strlen(sanmiao)-3]='\0';if(strcmp(sanmiao,names[0])==0) exit(0);//判断扫描是否结束for(int j=0;j<files;j++){if(j<i){free(address[j]);address[j]=NULL;}address[j]=(char*)malloc(strlen(names[j])+4);strcpy(address[j],names[j]);strcat(address[j],"\\*.");free(names[j]);names[j]=NULL;long Handles;struct _finddata_t Fileinfos;char first_name[100];strcpy(first_name,address[j]);strcat(first_name,"*\0");if((Handles=_findfirst(first_name,&Fileinfos))!=-1L){char file_name[100];while(_findnext(Handles,&Fileinfos)==0){if(Fileinfos.name[0]!='.'){strcpy(file_name,address[j]);file_name[strlen(file_name)-2]='\0';strcat(file_name,Fileinfos.name);printf("%s\n",file_name);}}_findclose(Handles);}//printf("%s %d\n",address[j],j);}files=0;i=0;}
}//main

 

此代码可以扫描磁盘亦可以扫描文件夹,被注释掉的printf均可作为不同输出,请自行检测。

第一篇文章可能写的不好,但是感觉有好多人在问这个问题,这里做出解决,大佬勿喷。



http://www.ppmy.cn/news/666621.html

相关文章

Duplicate Cleaner - 重复文件 / 相似文件扫描

Duplicate Cleaner - 重复文件 / 相似文件扫描 https://www.duplicatecleaner.com/ Duplicate Cleaner is a tool for finding and removing duplicate files from your computer or network drives. It is intended to be used on user content - documents, photos, images,…

Android中的文件扫描

在android中我们有时会做有关电子书阅读器、音乐播放器等软件&#xff0c;那么我们就避免不了要对内存中的文件进行扫描&#xff0c;音乐播放器我们可以使用android自带的MediaProvider进行处理&#xff0c;而其他的不是媒体文件就要我们自己处理了&#xff0c;接下来我将介绍两…

android 扫描指定文件,Android扫描指定文件和目录

1&#xff0e;启动MediaScanner服务&#xff0c;扫描媒体文件&#xff1a; 程序通过发送下面的Intent启动MediaScanner服务扫描指定的文件或目录&#xff1a; Intent.ACTION_MEDIA_SCANNER_SCAN_FILE&#xff1a;扫描指定文件 public void scanFileAsync(Context ctx, String f…

Python 实现文件关键字扫描

该Python脚本实现了一个简单的扫描器&#xff0c;用于在指定路径下查找指定类型的文件&#xff08;此处以.php文件为例&#xff09;&#xff0c;并对文件内容进行扫描&#xff0c;查找包含特定命令或函数的行。 具体流程如下&#xff1a; spider()函数用于遍历指定路径下的文…

android 文档扫描,《文档扫描大师》 简单方便的PDF生成器

想拥有一个能装进口袋的扫描仪吗&#xff1f;想轻松的把你需要的文档或者照片转换成PDF格式吗&#xff1f; 安卓手机上的文档扫描文档生成PDF之类的软件也有几款&#xff0c;今天再为大家介绍一款体积小巧但功能却一点也不逊色的文档扫描软件——《文档扫描大师(Scan Master)》…

Python+Opencv建立一个文档扫描器

目录 一、什么是文档扫描器&#xff1f;二、实现文档扫描器的步骤三、文档扫描器的代码实现四、文档扫描器可视化五、文档扫描器效果展示六、问题探讨参考资料注意事项 一、什么是文档扫描器&#xff1f; 简单来讲&#xff0c;所谓的文档扫描器的作用是对手机拍摄的图片中的目标…

文档扫描OCR简介

文档扫描OCR识别简介 文档扫描OCR识别&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是指电子设备&#xff08;例如扫描仪或数码相机&#xff09;检查纸上打印的字符&#xff0c;通过检测暗、亮的模式确定其形状&#xff0c;然后用字符识别方…

如何使用小米手机对文档进行扫描

如何使用小米手机对文档进行扫描 ​ 我的手机是红米K40。 步骤 打开系统工具点开扫一扫应用左下选择扫文档功能 然后就可以扫单张和多张了。