VC++中遍历文件夹下的文档及子文件夹

2024-05-25 08:58

本文主要是介绍VC++中遍历文件夹下的文档及子文件夹,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VC中遍历文件夹下的文档及子文件夹

WIN32_FIND_DATA结构体:

typedef struct _WIN32_FIND_DATA    
{    DWORD dwFileAttributes; //文件属性    FILETIME ftCreationTime; // 文件创建时间    FILETIME ftLastAccessTime; // 文件最后一次访问时间    FILETIME ftLastWriteTime; // 文件最后一次修改时间    DWORD nFileSizeHigh; // 文件长度高32位    DWORD nFileSizeLow; // 文件长度低32位    DWORD dwReserved0; // 系统保留    DWORD dwReserved1; // 系统保留    TCHAR cFileName[ MAX_PATH ]; // 长文件名    TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名    } WIN32_FIND_DATA; 

使用方法:

bool find(char * lpPath)  
{  printf("******************查找文件开始*************************\n");  char szFile[100];  char szFind[MAX_PATH];  //WIN32_FIND_DATA结构描述了一个由FindFirstFile,   //FindFirstFileEx, 或FindNextFile函数查找到的文件信息  WIN32_FIND_DATA FindFileData;  memset(szFile,0,100);         //为新申请的内存做初始化工作  strcpy(szFind,lpPath);        //将lpPath的值拷贝给szFind  strcat(szFind,"//*.*");       //联接构成完整路径名,双斜杠//用于组成下一级路径  //通过FindFirstFile()函数根据当前的文件存放路径  //查找该文件来把待操作文件的相关属性读取到WIN32_FIND_DATA结构中去  HANDLE hFind=::FindFirstFile(szFind,&FindFileData);  if(INVALID_HANDLE_VALUE == hFind)      {  return 0;  //如果hFind的句柄值无效,返回0  }  while(TRUE)  {  //将dwFileAttributes和FILE_ATTRIBUTE_DIRECTORY做位"与"运算来判断所找到的项目是不是文件夹,  //这段程序的目的是查找文件夹下子文件夹中的内容  if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)  {  if(FindFileData.cFileName[0]!='.')  {  strcpy(szFile,lpPath);  strcat(szFile,"//");  strcat(szFile,FindFileData.cFileName);  find(szFile);  }  }  else  {  printf("filename:%s\n",FindFileData.cFileName);  printf("nFileSizeLow:%d\n",FindFileData.nFileSizeLow);  }  if(!FindNextFile(hFind,&FindFileData))     break;//如果没有找到下一个文件,结束本次循环  }  FindClose(hFind);  printf("******************查找文件结束*************************\n");  return 1;  
}  

这篇关于VC++中遍历文件夹下的文档及子文件夹的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001049

相关文章

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

一文教你Python引入其他文件夹下的.py文件

《一文教你Python引入其他文件夹下的.py文件》这篇文章主要为大家详细介绍了如何在Python中引入其他文件夹里的.py文件,并探讨几种常见的实现方式,有需要的小伙伴可以根据需求进行选择... 目录1. 使用sys.path动态添加路径2. 使用相对导入(适用于包结构)3. 使用pythonPATH环境

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑