我有目录测试和子目录元数据。
C:/Users/name/Desktop/test/metadata\\test_1.metadata
。
我以这种方式访问元数据目录中的文件。
std::string filename = dir_iter->path().string();
std::string rawName = filename.substr( 0 , filename.find_last_of( "." ) );
std::string subRawDir = rawName.substr( 0 , rawName.find_last_of( "\\" ) ) + "/metadata\\";
std::string name = subRawDir + rawName.substr( filename.find_last_of( "\\" ) + 1 ) + ".metadata";
比这更好的方法会很好:)
答案 0 :(得分:0)
你可以试试boost :: filesystem。它为您提供了许多函数来迭代目录,子目录和文件。 您可以找到教程和解释here
这是一个如何做到这一点的例子:
#include <boost/filesystem.hpp>
#include <boost/foreach.hpp>
boost::filesystem::path your_dir("C:/Users/name/Desktop/test/metadata");
boost::filesystem::directory_iterator it(your_dir), end_of_dir;
BOOST_FOREACH(boost::filesystem::path const &p, std::make_pair(it, end_of_dir))
{
if(is_regular_file(p))
{
// Do stuff with your file
}
}