android 复制文件到指定文件夹_C++|利用链表实现在指定路径下遍历各级文件夹进行文件查找...

本文介绍了如何在Android中使用链表实现遍历指定路径下的各级文件夹,并查找并复制文件。内容包括运行效果展示,以及一个全盘查找指定类型文件的批处理文件的运行效果。
摘要由CSDN通过智能技术生成

文件在各级文件夹中查找可以利用递归实现,也可以通过链表实现:

8a902cd9b67a1b4609d0d975a34e8394.png

运行效果:

99442e82a26adf397575e12151d016d6.png
6388420ea7a41e607a5ef0bc9ab9b2f1.png

附一个全盘查找指定类型文件的批处理文件:

@echo offsetlocal enabledelayedexpansionecho. >c:virus.txtcolor 3aecho.set /a n = 0set /p b=输入查找文件扩展名:if /i "%b%"=="" cls && goto fhecho 系统正在查找文件,请耐心等候......echo.::for %%a in (F E D C) do (for %%a in (E) do (cd /d %%a:for /r %%b in (*.%b%) do (if exist "%%b" (echo %%becho %%b>>c:virus.txtset /a n+=1echo 现查到%b%文件个数:!n!)))type c:virus.txt | find /i "" && goto noecho.echo 文件内容没找到!del c:virus.txt>nul 2>nulecho.pauseexit:no::clsecho.echo 文件查找完毕并记录在c:virus.txt中 !echo 现查到%b%文件总的个数:!n!echo.echo 是否打开文本查看记录 ?echo.echo 选择" Y "查看。 选择" N "退出。echo.set /p Choice=Y/N: IF /I '%Choice:~0,1%'=='y' goto AIF /I '%Choice:~0,1%'=='n' goto Bpauseexit:Astart c:virus.txtexitpause:bexit

批处理运行效果:

df9af32672d42e2bca26dc2e0d29930a.png

附代码:

//#include "stdafx.h"#pragma comment(linker, "/subsystem:console")#include #include "shellapi.h"#pragma comment(lib,"shell32.lib") #include #include #define num 222struct DirList{char dirName[256]; //文件夹名DirList *pNext;};DirList *first,*newlist,*last;void AddList(char *list)//加入文件夹链表{newlist=new DirList;strcpy(newlist->dirName,list);newlist->pNext=NULL;//假如文件链表为空,那么第一个和最后一个节点都指向新节点if(first==NULL){first=newlist;last=newlist;}//不为空,则原来最后一个节点指向新节点else{last->pNext=newlist;last=newlist;}}//在某一路径(文件链表节点)下:①文件夹加入文件夹链表;②查找文件void NodeFindFile(char *pRoad,char *pFile,FILE* fp){// ①文件夹加入文件夹链表char DirRoad[256]={0};strcpy(DirRoad,pRoad);strcat(DirRoad,"*.*");char FindedDir[256]={0};WIN32_FIND_DATA findData; //一个描述文件或文件夹的属性的结构HANDLE hFindFile;hFindFile=FindFirstFile(DirRoad,&findData);if(hFindFile!=INVALID_HANDLE_VALUE){do{if(findData.cFileName[0]=='.')continue;//假如是文件夹,则加入文件夹链表if(findData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY){strcpy(FindedDir,pRoad);strcat(FindedDir,"");strcat(FindedDir,findData.cFileName);//加入文件夹列表AddList(FindedDir);memset(FindedDir,0x00,256);}//继续查找}while(FindNextFile(hFindFile,&findData));}//②查找文件char FileRoad[256]={0};strcpy(FileRoad,pRoad);strcat(FileRoad,"");strcat(FileRoad,pFile);char FindedFile[256]={0};//查找要查找的文件hFindFile=FindFirstFile(FileRoad,&findData);if(hFindFile!=INVALID_HANDLE_VALUE){do{ strcpy(FindedFile,pRoad);strcat(FindedFile,"");strcat(FindedFile,findData.cFileName);//输出查找到的文件fputs(FindedFile,fp);printf("%s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值