c++遍历文件夹
2016-07-15 21:52
302 查看
#include <Windows.h>
#include <stdio.h>
#include <string>
#include <iostream>
#include <io.h>
void FindFile(char *szPath);
using namespace std;
int main()
{
FindFile("F:\\window安装包");
system("pause");
return 0;
}
//函数功能: 扫描查找文件
//参数说明:
//szPath:需要扫描的目录
void FindFile(char *szPath)
{
WIN32_FIND_DATAA FindFileData;
char szFileToFind[MAX_PATH] = {0};
lstrcpyA(szFileToFind, szPath);
lstrcatA(szFileToFind, "\\*.*");
cout<<szPath;
printf("\n");
//查找目录下所有文件
HANDLE hFile = FindFirstFileA(szFileToFind,&FindFileData);
if (hFile == INVALID_HANDLE_VALUE)return;
do
{
char szNewPath[MAX_PATH] = {0};
lstrcpyA(szNewPath, szPath);
if(szPath=="*.")
{
cout<<szNewPath;
printf("\n");
}
//判断是否是目录
if (FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
//判断是否是.或..
if (!lstrcmpA(FindFileData.cFileName, ".") || !lstrcmpA(FindFileData.cFileName, ".."))
{
}
else
{
//递归查找下级目录
lstrcatA(szNewPath, "\\");
lstrcatA(szNewPath, FindFileData.cFileName);
FindFile(szNewPath);
if (szNewPath=="*.")
{
cout<<szNewPath;
printf("\n");
}
}
}
else
{
//处理查找到的文件
char szExe[MAX_PATH] = {0};
lstrcpyA(szExe, szNewPath);
lstrcatA(szExe, "\\");
lstrcatA(szExe, FindFileData.cFileName);
FindFile(szExe);
cout<<szExe;
printf("\n");
}
} while (FindNextFileA(hFile, &FindFileData));
FindClose(hFile);
}
#include <stdio.h>
#include <string>
#include <iostream>
#include <io.h>
void FindFile(char *szPath);
using namespace std;
int main()
{
FindFile("F:\\window安装包");
system("pause");
return 0;
}
//函数功能: 扫描查找文件
//参数说明:
//szPath:需要扫描的目录
void FindFile(char *szPath)
{
WIN32_FIND_DATAA FindFileData;
char szFileToFind[MAX_PATH] = {0};
lstrcpyA(szFileToFind, szPath);
lstrcatA(szFileToFind, "\\*.*");
cout<<szPath;
printf("\n");
//查找目录下所有文件
HANDLE hFile = FindFirstFileA(szFileToFind,&FindFileData);
if (hFile == INVALID_HANDLE_VALUE)return;
do
{
char szNewPath[MAX_PATH] = {0};
lstrcpyA(szNewPath, szPath);
if(szPath=="*.")
{
cout<<szNewPath;
printf("\n");
}
//判断是否是目录
if (FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
//判断是否是.或..
if (!lstrcmpA(FindFileData.cFileName, ".") || !lstrcmpA(FindFileData.cFileName, ".."))
{
}
else
{
//递归查找下级目录
lstrcatA(szNewPath, "\\");
lstrcatA(szNewPath, FindFileData.cFileName);
FindFile(szNewPath);
if (szNewPath=="*.")
{
cout<<szNewPath;
printf("\n");
}
}
}
else
{
//处理查找到的文件
char szExe[MAX_PATH] = {0};
lstrcpyA(szExe, szNewPath);
lstrcatA(szExe, "\\");
lstrcatA(szExe, FindFileData.cFileName);
FindFile(szExe);
cout<<szExe;
printf("\n");
}
} while (FindNextFileA(hFile, &FindFileData));
FindClose(hFile);
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 命令行小技巧:读取文件的不同方式
- IE:临时文件保存法
- 文件的读出 编辑 管理
- 文件遍历排序函数
- 在线用表单建立文件夹
- VB获取文件大小的方法
- 文件、目录,文本文件等多种操作类
- 处理驱动器和文件夹
- 用vbs删除某些类型文件和磁盘空间报告的脚本
- Ruby实现批量对文件增加前缀代码分享
- C#获取文件夹及文件的大小与占用空间的方法
- delphi制作wav文件的方法
- PowerShell实现查询打开某个文件的默认应用程序
- bat 文件 学习使用指南