`
sunbo1938208
  • 浏览: 3819 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

C语言Win32 API目录遍历

阅读更多
#include "stdafx.h"
#include "windows.h"

bool listPath(wchar_t *lpszPath);

int _tmain(int argc, _TCHAR* argv[]) {
	listPath(_T("Directory here"));
	return 0;
}

bool listPath(wchar_t *lpszPath) {
	wchar_t szFilePath[MAX_PATH];		/* 遍历路径(正则表达式*.*) */
	wchar_t szAllPath[MAX_PATH];		/* 存储具体文件的绝对路径 */
	WIN32_FIND_DATA fdFileData;	        /* 存储文件数据 */
	HANDLE hFindFile;					/* 文件句柄 */

	wsprintf(szFilePath,				         
		_T("%s%s"), lpszPath, _T("\\*.*"));				
	if((hFindFile = FindFirstFile(szFilePath, &fdFileData))
		== INVALID_HANDLE_VALUE) {
		printf("Find file failed, Error code:%d\n", GetLastError());
		return false;
	}
	do {
		wsprintf(szAllPath, 
			_T("%s\\%s"), lpszPath, fdFileData.cFileName);
		if(!lstrcmp(fdFileData.cFileName, _T("."))) /* 找到的为当前目录. */
			continue;
		if(!lstrcmp(fdFileData.cFileName, _T("..")))/* 找到的为父目录.. */
			continue;
		wprintf(_T("%s\\%s\n"), lpszPath, fdFileData.cFileName);
		//if(fdFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
			//printf("<hidden>\n");
		if(fdFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
			//printf("<dir>\n");
			listPath(szAllPath);
		}
		printf("\n");
	}while(FindNextFile(hFindFile, &fdFileData));
	FindClose(hFindFile);
	return true;
}

 参考页面:http://huangws138.blog.163.com/blog/static/58790621201142843432632/

分享到:
评论

相关推荐

    win32 API大全

    首先,Win32 API是基于C语言的,因此它的函数调用和数据类型都是C风格的。API中的函数涵盖了窗口管理、图形设备接口(GDI)、用户界面、进程与线程管理、内存管理、文件系统操作、网络通信、安全性和系统时钟等多个...

    linux及win跟目录遍历文件和文件夹及子文件夹

    WIN32_FIND_DATA fd; HANDLE hFind = INVALID_HANDLE_VALUE; char szDir[MAX_PATH]; // 将路径加上通配符 _snprintf(szDir, MAX_PATH, "%s\\*", szPathName); if ((hFind = FindFirstFile(szDir, &fd)) == ...

    Win32API中文版本

    6. **文件操作**:CreateFile、ReadFile和WriteFile是处理文件的基本函数,它们允许读写文件,而FindFirstFile和FindNextFile用于目录遍历。 7. **硬件设备访问**:通过DeviceIoControl函数,开发者可以直接与硬件...

    Windows API 编程及WIN32的API函数

    在Windows系统中,这些接口主要由Win32 API组成,它是微软为开发者提供的一个广泛而全面的工具集,涵盖了窗口管理、图形绘制、文件操作、网络通信等多个领域。 一、Windows API的结构 Windows API是由许多动态链接...

    WIN32API

    3. **内存管理**:WIN32API提供了动态内存分配和释放的函数,如VirtualAlloc分配虚拟内存,VirtualFree释放内存,以及malloc和free等C语言风格的内存管理函数。 4. **文件操作**:CreateFile用于打开或创建文件,...

    c语言递归遍历指定文件夹下所有文件算法

    在C语言中,递归遍历文件夹是一种常见的需求,主要用于搜索、处理文件系统中的文件或目录等场景。递归遍历意味着程序会从一个指定的根目录开始,逐层深入每个子目录,直到遍历完整个目录树为止。本篇文章将详细解析...

    几个win32程序例子

    它可能还涉及目录遍历和错误处理。 7. **MyPlayer**: 作为音乐播放器,这个程序使用Win32 API和可能的多媒体库(如DirectShow或Windows Media Foundation)来播放音频文件。它可能包括了文件选择对话框、音量控制、...

    mysql-connector-c-6.1.6-win32

    总的来说,“mysql-connector-c-6.1.6-win32”是Windows 32位环境下连接MySQL数据库的重要工具,它提供了C语言应用程序访问MySQL数据库的桥梁,使得开发者可以充分利用C语言的强大功能进行数据库操作。

    C语言批量读取文件路径到txt

    要实现这个功能,我们需要理解C语言中的文件I/O操作、字符串处理以及目录遍历。以下将详细介绍如何使用C语言来实现这一功能。 首先,我们需要了解C语言中的文件操作函数。`fopen()`用于打开文件,`fprintf()`用于向...

    win32-tools:使用C和Windows API的简单工具

    一个简单的win32工具可能是创建一个控制台程序,用于列出指定目录下的所有文件,使用`FindFirstFile`,`FindNextFile`和`FindClose`等API实现文件遍历。 6. **win32-tools-master项目** "win32-tools-master"可能...

    VC6 递归得到目录下文件列表

    首先,我们需要了解目录遍历的基本原理。在Windows系统中,目录结构是树状的,每个目录可能包含子目录和文件。为了获取一个目录下的所有文件,我们需要从根目录开始,检查其子目录并递归地处理它们。这通常涉及使用...

    获取Windows 操作系统版本信息的 C 程序

    一般而言,可以使用Windows Management Instrumentation (WMI)来查询系统补丁状态,或者使用`SHGetKnownFolderPath`结合`EnumDirectoryFiles`来遍历`C:\Windows\servicing\Packages`目录下的已安装补丁包。...

    C语言批量生成文件夹

    C语言本身并不直接支持创建文件夹,但可以通过调用操作系统提供的API函数来实现这一功能。在这个场景中,我们主要会用到`mkdir()`函数或者Windows平台上的`_mkdir()`函数。下面将详细介绍如何使用C语言批量生成...

    Windows 2000 API超级宝典 光盘源码(全).rar

    1. **GUI编程示例**:展示了如何使用Win32 API创建窗口、处理消息、绘制图形、响应用户事件等,如CreateWindow、DispatchMessage等函数的使用。 2. **进程与线程管理**:涵盖了进程的创建、退出、同步以及线程的调度...

    mongo-c-driver-win32-release-staticlib

    MongoDB C驱动程序是用于与MongoDB数据库进行交互的C语言接口,主要针对开发者在Windows 32位环境中构建应用程序时使用。这个“mongo-c-driver-win32-release-staticlib”是一个压缩包,包含了用于静态链接的库文件...

    mongo-c-driver-win32-debug-staticlib

    "mongo-c-driver-win32-debug-staticlib"这个标题明确指出了这是一个专为Windows 32位系统设计的C驱动程序,且是debug模式下的静态库版本。在Windows平台,静态库(.lib)将链接到目标程序中,使得程序运行时不再...

    c语言进阶书籍(5)的代码

    3. **链表的实现**:在Windows环境下,可能涉及到Windows API函数,如动态内存分配`malloc()`和`free()`,以及如何在C语言中使用这些函数来管理链表节点的内存。 4. **链表操作**:学习如何在链表头部、尾部和中间...

    给大家分享完整的api函数表

    2. **Win32 API**:这是Windows API的最常见形式,主要由C语言风格的函数组成,用于开发32位和64位Windows应用程序。 3. **函数分类**:API函数可以分为多个类别,如系统管理、文件和I/O、图形设备接口(GDI)、...

    遍历一个磁盘,输出磁盘里的所有文件路径

    3. **处理文件信息**:每次`FindNextFile()`调用成功时,都会返回一个`WIN32_FIND_DATA`结构体,其中包含了文件或目录的详细信息,如文件名、大小、创建时间等。 4. **递归处理子目录**:如果找到的是一个目录,...

    QT的Oracle驱动QOCI-for Win32

    QT的Oracle驱动QOCI-for Win32是一款专为在Windows 32位环境下运行的Qt应用程序设计的数据库连接组件。QOCI,全称Qt Oracle Call Interface,是Qt库中的一个部分,它允许开发者通过Qt框架与Oracle数据库进行交互。...

Global site tag (gtag.js) - Google Analytics