CFindFile的文档指出:



因此,如果对FindNextFile的调用返回相同的值,我怎么知道是1个文件还是0个文件?

如果找到零个文件,似乎对FindFile::GetFilePath()的调用失败(这会无意间导致我的应用程序崩溃)。

pLog->Log(_T("Finding files in [%s]"), 1, szFilePath);

    if (!oFindFile.FindFile(szFilePath, 0))
{
    pLog->Log(_T("Failed to find file in directory: [%s]"),1,szDirectory);
    return false;
}

bool moreFiles = true;
while(moreFiles)
{
    moreFiles = oFindFile.FindNextFile();
    if (oFindFile.IsDots())
    {
        continue;
    }

    CString szFileName = oFindFile.GetFilePath();
    pLog->Log(_T("Found file [%s]"), 1, szFileName);
    pVector->push_back(szFileName);
}
return true;

编辑
CString szFilePath = _T("C:\documents and settings\username\desktop\*.lnk");
CString szDirectory = T("C:\documents and settings\username\desktop");

最佳答案

如果没有文件,则对CFileFind::FindFile的调用将返回false。您需要先调用此函数,然后才能调用FindNextFile

10-08 11:53