高手指点一下,想得到当前目录下的PHOTO子目录下的所有文件列表。从中提取出后缀名为JPG或BMP的文件。这样我就可以将这些文件进行显示。
编程小菜鸟,刚入门,大家多多包涵。

解决方案 »

  1.   

    请参考
    void DeleteFileInDir(char* strFileNameFullPath)
    {
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind;
    string strCurrentDir = strFileNameFullPath;
    string strTempDir = strFileNameFullPath;
    string strTempFileName = strTempDir;
      ERRCODE errRet;
    hFind = FindFirstFile((strTempDir.append("\\*")).c_str(), &FindFileData); if (hFind == INVALID_HANDLE_VALUE)
    {
    printf ("Invalid File Handle. Get Last Error reports %d\n", GetLastError ());

    else
    {
    do
    {
    if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    {
    if (!strcmp(FindFileData.cFileName, ".") || !strcmp(FindFileData.cFileName, ".."))
    {
    ;
    }
    else
    {
    strTempFileName = strCurrentDir + "\\";
    strTempFileName = strTempFileName + FindFileData.cFileName;
    DeleteFileInDir((char*)strTempFileName.c_str());
    }
    }
    else
    {
    strTempFileName = strCurrentDir + "\\";
    strTempFileName = strTempFileName + FindFileData.cFileName;
      if(::DeleteFile(strTempFileName.c_str()))
    {
    cout << "file deleted: " << strTempFileName.c_str() << endl;
    }
    else
    {
    errRet = GetLastError();
    switch (errRet)
    {
    case ERROR_FILE_NOT_FOUND:
    g_ConsoleCtrl.SetTextColor(FOREGROUND_BLUE);
    cout << "file delete failed: " << strTempFileName.c_str() << ", for : ERROR_FILE_NOT_FOUND " << endl;
    g_ConsoleCtrl.SetTextColor();
    break; case ERROR_ACCESS_DENIED:
    g_ConsoleCtrl.SetTextColor(FOREGROUND_GREEN);
    cout << "file delete failed: " << strTempFileName.c_str() << ", for : ERROR_ACCESS_DENIED" << endl;
    g_ConsoleCtrl.SetTextColor();
    break; default:
    g_ConsoleCtrl.SetTextColor(FOREGROUND_RED);
    cout << "file delete failed: " << strTempFileName.c_str() << ", error code : " << errRet << endl;
    g_ConsoleCtrl.SetTextColor();
    break;
    } }
    } if (!FindNextFile(hFind, &FindFileData))
    {
    //  errRet = GetLastError();
    break;
    } }while(TRUE);
    }
    FindClose(hFind);
    return;
    }