【发布时间】:2009-06-10 23:35:23
【问题描述】:
我正试图弄清楚如何解决这个问题..由于某种原因,它在某个点结束..我不太擅长递归,我确定问题出在某个地方..
另外,即使我检查了 cFileName != "..",它仍然显示在最后,不知道为什么,但是 "."不再出现了。。
void find_files( wstring wrkdir )
{
wstring temp;
temp = wrkdir + L"\\" + L"*";
fHandle = FindFirstFile( temp.c_str(), &file_data );
if( fHandle == INVALID_HANDLE_VALUE )
{
return;
}
else
{
while( FindNextFile( fHandle, &file_data ) )
{
if( file_data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY &&
wcscmp(file_data.cFileName, L".") != 0 &&
wcscmp(file_data.cFileName, L"..") != 0 )
{
find_files( wrkdir + L"\\" + file_data.cFileName );
}
else if( file_data.dwFileAttributes != FILE_ATTRIBUTE_HIDDEN &&
file_data.dwFileAttributes != FILE_ATTRIBUTE_SYSTEM )
{
results << wrkdir << "\\" << file_data.cFileName << endl;
}
}
}
}
更改这些后,程序不会枚举剩余的文件..
例如,如果有一个名为 test 的子文件夹,它会枚举 test 中的所有内容,但不会枚举完指定原始目录中的文件。
【问题讨论】:
-
您能详细说明问题所在吗?
标签: c++ windows winapi recursion