zoukankan      html  css  js  c++  java
  • VC++实现遍历指定文件夹

    VC++实现遍历指定文件夹,并进行深度遍历,一级,二级。。。最终列出该文件夹下所有文件全路径。

    #include "stdafx.h"
    #include <iostream>
    #include <Windows.h>
    
    using namespace std;
    
    /************************************
    @ Brief:		判断文件是否存在
    @ Author:		woniu201 
    @ Created:		2018/09/12
    @ Return:            
    ************************************/
    BOOL IsDirExist(char* csDir)
    {
    	DWORD dwAttrib = GetFileAttributes(csDir);
    	return INVALID_FILE_ATTRIBUTES != dwAttrib && 0 != (dwAttrib & FILE_ATTRIBUTE_DIRECTORY);
    }
    
    /************************************
    @ Brief:		遍历文件夹
    @ Author:		woniu201 
    @ Created:		2018/09/13
    @ Return:            
    ************************************/
    BOOL DirectoryList(char* path)
    {
    	WIN32_FIND_DATA FindData;
    	HANDLE handle;
    
    
    	char fullName[2048] = {0};
    
    	char filePathName[2048] = {0};
    	strcpy(filePathName, path);
    	strcat(filePathName, "\*.*");
    	handle = FindFirstFile(filePathName, &FindData);
    	if (handle == INVALID_HANDLE_VALUE)
    	{
    		cout << "搜索失败" << endl;
    	}
    	while(FindNextFile(handle, &FindData))
    	{
    		//过滤.和..
    		if (strcmp(FindData.cFileName, ".") == 0 || strcmp(FindData.cFileName, "..") == 0)
    		{
    			continue;
    		}
    
    		sprintf(fullName, "%s\%s", path, FindData.cFileName);
    		cout << fullName << endl;
    
    		//判断是否是文件夹
    		if (IsDirExist(fullName))
    		{
    			DirectoryList(fullName);
    		}
    	}
    	FindClose(handle);
    	return TRUE;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	DirectoryList("c:\");
    	getchar();
    	return 0;
    }
    
  • 相关阅读:
    linux 命令展示该目录下的所有子目录及文件结构 tree
    ssh-keygen
    centos安装git
    spring-boot parent变更为依赖方式
    centos docker compose安装
    UML——活动图
    UML——构件图
    UML——部署图
    UML——用例图
    UML——关系
  • 原文地址:https://www.cnblogs.com/woniu201/p/11694577.html
Copyright © 2011-2022 走看看