有一个文件夹中的100张jpg图片
现在我要一键获取这些图片的文件名
请问高手们,怎样才能做到?

解决方案 »

  1.   

    http://blog.csdn.net/wutaozhao/article/details/6044067
      

  2.   

    findfirstfile得到第一个文件,返回一个handle
    然后不断调用findnextfile,每次都传上一个得到的handle直到handle返回0伪代码就是
    h = findfirstfile()
    while (h != 0)
    {
        h = findnextfile()
    }
      

  3.   

    枚举所有文件名而已。。CFindFile
      

  4.   


    void CSetDlg::myDeleteDirectory(CString directoryPath)
    {
    CFileFind finder;
    CString szPath;
    szPath = directoryPath+_T("/*.*");
    BOOL bWorking = finder.FindFile(szPath);
    while (bWorking)
    {
    bWorking = finder.FindNextFile();
    if (finder.IsDots())
    {
    continue;
    }
    if (finder.IsDirectory())
    {
    myDeleteDirectory(finder.GetFilePath());
    RemoveDirectoryW(finder.GetFilePath());
    }
    else{
    DeleteFile(finder.GetFilePath());
    }
    }
    }
      

  5.   

    给你一个函数吧,第一个参数传文件夹的全路径,第二个串文件类型(*.png),得到的文件名放在第三个参数里面,可以参考下。
    BOOL SysNormalSet::GetFileName(char* path, char* extension, vector<string>& files)
    {
    HANDLE hFind;
    WIN32_FIND_DATA wfData;
    TCHAR tchar_filePattern[MAX_PATH]={0};
    char filePattern[MAX_PATH]={0};
    char subDir[MAX_PATH]={0};
    char fileName[MAX_PATH]={0}; sprintf(filePattern, "%s\\%s", path, extension);
    MultiByteToWideChar(CP_ACP,0,filePattern,-1,tchar_filePattern,MAX_PATH);
    hFind = FindFirstFile(tchar_filePattern,&wfData);
    if(hFind == INVALID_HANDLE_VALUE)
    {
    //fwprintf(fp,_T("No file is found.\n"));
    return(FALSE);
    }
    do
    {
    switch(wfData.dwFileAttributes)
    {
    case FILE_ATTRIBUTE_DIRECTORY://目录
    if(lstrcmp(wfData.cFileName,_T(".")) && lstrcmp(wfData.cFileName,_T("..")))//排除当前目录和上级目录
    {
    WideCharToMultiByte(CP_ACP,0,wfData.cFileName,-1,fileName,MAX_PATH,NULL,NULL);
    sprintf(subDir,"%s\\%s",path,fileName);
    GetFileName(subDir,extension,files);//递归调用,这是遍历的基础
    }
    break;
    default:
    WideCharToMultiByte(CP_ACP,0,wfData.cFileName,-1,fileName,MAX_PATH,NULL,NULL);
    files.push_back(fileName);
    break;
    }
    }while(FindNextFile(hFind,&wfData));
    FindClose(hFind); //关闭查找句柄
    return(TRUE);
    }