【c++】读取目录下所有文件
来源:互联网 发布:量子计算云平台 编辑:程序博客网 时间:2024/06/09 02:39
在开发软件的过程里,经常需要维护目录里的数据。比如在开发银行的信用卡系统里,由于每天创建的LOG非常多,那么一个很大的硬盘,在6个月后,就占用了很多空间。这时就有这样的一个需求,把所有超过6个月的LOG数据定期删除掉。要实现这个功能就得遍历整个目录,把文件名称和文件创建的时间都超过6个月时间的文件删除掉。因此,就需使用到下面的API函数FindFirstFile和FindNextFile来实现这样的功能,FindFirstFile函数是查找到目录下的第一个文件或目录,FindNextFile函数是查找下一文件或目录。
#include <windows.h>#include <iostream>using namespace std;char* WcharToChar(const wchar_t* wp) { char *m_char; int len= WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),NULL,0,NULL,NULL); m_char=new char[len+1]; WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),m_char,len,NULL,NULL); m_char[len]='\0'; return m_char; } int main(int argc, char *argv[]){ HANDLE hFile; LPCTSTR lpFileName = L".\\*.*"; //指定搜索目录和文件类型,如搜索d盘的音频文件可以是"D:\\*.mp3" WIN32_FIND_DATA pNextInfo; //搜索得到的文件信息将储存在pNextInfo中; hFile = FindFirstFile(lpFileName,&pNextInfo);//请注意是 &pNextInfo , 不是 pNextInfo; if(hFile == INVALID_HANDLE_VALUE) { //搜索失败 exit(-1); } //wcout<<pNextInfo.cFileName<<endl; printf("%s\n",WcharToChar(pNextInfo.cFileName)); while(FindNextFile(hFile,&pNextInfo)) { if(pNextInfo.cFileName[0] == '.')//过滤.和.. continue; //wcout<<pNextInfo.cFileName<<endl; printf("%s\n",WcharToChar(pNextInfo.cFileName)); } getchar(); return 0;}
当然也可以通过do-while读取
把上面的
printf("%s\n",WcharToChar(pNextInfo.cFileName)); while(FindNextFile(hFile,&pNextInfo)) { if(pNextInfo.cFileName[0] == '.')//过滤.和.. continue; //wcout<<pNextInfo.cFileName<<endl; printf("%s\n",WcharToChar(pNextInfo.cFileName)); }
替换为:
do{ if(pNextInfo.cFileName[0] == '.')//过滤.和.. continue; printf("%s\n",WcharToChar(pNextInfo.cFileName));} while (FindNextFile(hFile,&pNextInfo));
有几个需要注意的地方:
1、第19行 在VS中wchar需要在前面加“L”
2、打印输出时,可以用wprintf,wcout,也可以把wchar通过函数WcharToChar转换为字符串输出
0 0
- 【c++】读取目录下所有文件
- 使用linux c 目录操作函数,读取任一目录下的所有目录信息文件信息
- php 读取目录下所有文件修改
- php读取目录下的所有文件
- windows api 读取目录下所有文件
- 读取指定目录下的所有文件
- Android读取assets目录下所有文件
- php 实现读取目录下所有文件
- python读取目录下所有文件
- linux c 读取目录及其子目录下所有.jpg文件的文件名(无后缀)
- 批量编译目录下所有C文件
- windows下c++读取一个目录下的所有文件
- java 文件 读取目录下的所有文件(包括子目录)
- c++读取文件目录下所有文件并输出
- python 扫描目录下所有文件并读取文件
- JSP 遍历读取文件夹下所有文件,目录
- java读取某个目录下所有的文件
- Java API 读取HDFS目录下的所有文件
- UI UILabel Button UITextField
- Hadoop日志到底存在哪里
- 使用Alibaba-AndFix Bug热修复框架
- Python itertools模块详解
- Android中的onActivityResult和setResult方法的使用
- 【c++】读取目录下所有文件
- 菜鸟成长记-MJRefresh自定义刷新样式
- C语言 基础题
- struts2中jsp前台传值到后台action的三种方式
- assert用法
- AS使用记录
- 【c++】第十二周上机实践作业 项目 3
- Android安全攻防战,反编译与混淆技术完全解析(下)
- 放在UITableVIewCell上的webView的高度自适应的问题