c – 如何知道并加载特定文件夹中的所有图像?

我有一个应用程序(C Builder 6.0)需要知道特定文件夹中的图像总数,然后我必须加载它们:在
ImageList或ComboBoxEx …或任何其他控件…

我怎样才能做到这一点?

我知道如何在控件中加载图像,或者保存在TList中,或者在ImageList中…但是如何知道目录中有多少文件文件,以及如何加载其中的每个图像?

我很抱歉我的英语.

最佳答案 我昨天使用
boost::filesystem库做了类似的事情.但是,如果您尚未使用boost,我强烈建议您只使用Windows库.这是我的代码,如果你有兴趣:

#include <algorithm>
#include <boost/filesystem.hpp>
#include <set>

namespace fs = boost::filesystem;

typedef std::vector<fs::path> PathVector;

std::auto_ptr<PathVector> ImagesInFolder(const fs::path& folderPath) {
    std::set<std::string> targetExtensions;
    targetExtensions.insert(".JPG");
    targetExtensions.insert(".BMP");
    targetExtensions.insert(".GIF");
    targetExtensions.insert(".PNG");

    std::auto_ptr<PathVector> paths(new PathVector());

    fs::directory_iterator end;
    for(fs::directory_iterator iter(folderPath); iter != end; ++iter) {
        if(!fs::is_regular_file(iter->status())) { continue; }

        std::string extension = iter->path().extension();
        std::transform(extension.begin(), extension.end(), extension.begin(), ::toupper);
        if(targetExtensions.find(extension) == targetExtensions.end()) { continue; }

        paths->push_back(iter->path());
    }

    return paths;
}

这并不能回答你关于如何将路径实际放入列表框的问题.

点赞