VS遍历windows文件夹的代码
有点麻烦:
#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(),在看看参数差异。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~