我有一个应用程序(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;
}
这并不能回答你关于如何将路径实际放入列表框的问题.