回 帖 发 新 帖 刷新版面

主题:vc下指定路径下获得文件名

哪位大侠,帮小弟。我要在指定路径下获取所有文件的文件名,并将文件名显示在一个下拉框控件中。谢谢了!!!!

回复列表 (共1个回复)

沙发

使用FindFirstFile和FindNextFile,具体怎样用这个两个函数我给你个例子。
DWORD ListAllFileInDrectory(LPSTR szPath)
{
    CHAR szFilePath[MAX_PATH];
    WIN32_FIND_DATA FindFileData;
    HANDLE hListFile;
    CHAR szFullPath[MAX_PATH];

    lstrcpy(szFilePath, szPath);
    lstrcat(szFilePath, "\\*");
    hListFile = FindFirstFile(szFilePath,&FindFileData);
    if(hListFile==INVALID_HANDLE_VALUE)
    {
        MessageBox(NULL,TEXT("文件路径找不到!"),NULL,MB_OK);
        return 0;
    }
    else
    {        
        do
        {
            
            if(lstrcmp(FindFileData.cFileName,TEXT(".")) == 0 ||
                lstrcmp(FindFileData.cFileName,TEXT("..")) == 0)
            {
                continue;
            }
            wsprintf(szFullPath,"%s\\%s",szPath,FindFileData.cFileName);
            if(FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
            {
                ListAllFileInDrectory(szFullPath);
            }
            else
            {    
                WIN32_FILE_ATTRIBUTE_DATA wfad;
                GetFileAttributesEx(szFullPath,GetFileExInfoStandard,&wfad);
                if(JudgeFileTime(&wfad.ftLastWriteTime))
                {
                    DWORD dwFlag = FindFileData.dwFileAttributes&FILE_ATTRIBUTE_SYSTEM ||
                                   FindFileData.dwFileAttributes&FILE_ATTRIBUTE_HIDDEN ||
                                   FindFileData.dwFileAttributes&FILE_ATTRIBUTE_READONLY; 
                    if(!dwFlag)
                    {
                        std::string insertItem;
                        ++nTotalDelete;
                        insertItem = szFullPath; 
                        if(!DeleteFile(szFullPath))
                        {
                            --nTotalDelete;
                            insertItem += TEXT("---删除失败");
                            
                        }
                        else
                        {
                            insertItem += TEXT("---删除成功");
                        }
                              ListBox_AddString(hFileList,insertItem.c_str());//向空间插入文件
                    }
                    
                }

            }
        }while(FindNextFile(hListFile, &FindFileData));

    }
    return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册