您当前的位置: 首页 >  windows

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

VS遍历windows文件夹的代码

柳鲲鹏 发布时间:2019-09-06 14:34:25 ,浏览量:0

有点麻烦:

#include 
#include "windows.h"
#include 
#include 

using namespace std;
 
//传入要遍历的文件夹路径,并遍历相应文件夹
void processPath(const wchar_t Dir)    
{
	WIN32_FIND_DATA FindFileData;
	HANDLE hFind=INVALID_HANDLE_VALUE;

	wchar_t DirSpec[MAX_PATH];
	StringCchCopy(DirSpec,MAX_PATH,Dir);
    StringCchCat(DirSpec,MAX_PATH,TEXT("\\*"));
 
	hFind=FindFirstFile(DirSpec,&FindFileData);
 
	if (hFind==INVALID_HANDLE_VALUE)
	{
		FindClose(hFind); 
		return;  
	}

	while (FindNextFile(hFind,&FindFileData) != 0)
	{
        //文件,直接处理
        if((FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) ==0)
        {
           //processFile()
        }

        //特殊目录,不处理。
        if (   wcscmp(FindFileData.cFileName,L"." )==0
            || wcscmp(FindFileData.cFileName,L"..")==0)
		{
			 continue;
		}
		//目录,递归处理
		wchar_t DirAdd[MAX_PATH];
		StringCchCopy(DirAdd,MAX_PATH,Dir);
		StringCchCat(DirAdd,MAX_PATH,TEXT("\\"));
		StringCchCat(DirAdd,MAX_PATH,FindFileData.cFileName);
		processPath(DirAdd);
	}
	FindClose(hFind);
}
 
int _tmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
{
	locale loc( "chs" );                //支持中文输出,否则wchar可能无法输出值为中文的变量
	wcout.imbue( loc );
	
 
	processPath(L"D:\\Test");         //遍历指定的文件夹,此处文件路径可按具体情况修改
	system("pause");
	return 0;
}

有的朋友问,如果要使用char怎么办?

这个也简单, FindFirstFileA(),在看看参数差异。

 

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0569s