gpt4 book ai didi

c - 使用 FindFirstFileEx 函数递归遍历目录

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:50 24 4
gpt4 key购买 nike

<分区>

我已经调试过了,但我仍然不知道是什么原因造成的。

#ifndef UNICODE 
#define UNICODE
#endif


#include <stdio.h>
#include <Windows.h>


void EndWithBackslash(TCHAR* string)
{
if(string[wcslen(string)-1] != TEXT('\\')) wcscat(string,TEXT("\\"));
}


void Browse(const TCHAR* curdir)
{
HANDLE hFoundFile;
WIN32_FIND_DATA foundFileData;
TCHAR buffer[MAX_PATH];

wcscpy(buffer,curdir);

EndWithBackslash(buffer);

SetCurrentDirectory(buffer);

hFoundFile = FindFirstFileEx(TEXT("*"),FINDEX_INFO_LEVELS::FindExInfoBasic,&foundFileData ,FINDEX_SEARCH_OPS::FindExSearchLimitToDirectories ,NULL , NULL);

if(hFoundFile != INVALID_HANDLE_VALUE)
{
do
{
if ((foundFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && wcscmp(foundFileData.cFileName,TEXT(".")) && wcscmp(foundFileData.cFileName,TEXT("..")) )
{
EndWithBackslash(buffer);
wcscat(buffer,foundFileData.cFileName);
wprintf(TEXT("%s\n"),buffer);


Browse(buffer);
}
}
while(FindNextFile(hFoundFile,&foundFileData));
FindClose(hFoundFile);


}
}

int main(void)
{
Browse(TEXT("F:\\"));

system("Pause");
return 0;
}

输出:

F:\$RECYCLE.BIN
F:\$RECYCLE.BIN\S-1-5-21-1271883188-2384997935-49719322-1000
F:\$RECYCLE.BIN\Seagate
F:\$RECYCLE.BIN\Seagate\Seagate Dashboard 2.0
F:\$RECYCLE.BIN\Seagate\Seagate Dashboard 2.0\System Volume Information
F:\$RECYCLE.BIN\Seagate\Seagate Dashboard 2.0\System Volume Information\Video

“第一层”到底是什么样子:

enter image description here

你能指出我的错误吗?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com