我最终在这里
How can I get the list of files in a directory using C or C++?
恐怕没有一个代码支持UTF-8。我稍微修改了Bad的代码以接受UTF-8目录。
//#define BOOST_FILESYSTEM_VERSION 3
#include <string>
#include <iostream>
#include <boost/filesystem.hpp>
#include <boost/filesystem/detail/utf8_codecvt_facet.hpp>
using namespace std;
using namespace boost::filesystem;
int main()
{
boost::filesystem::detail::utf8_codecvt_facet utf8;
boost::filesystem::path p;
p.assign(u8"C:\\", utf8);
for (auto i = directory_iterator(p); i != directory_iterator(); i++)
{
if (!is_directory(i->path())) //we eliminate directories
{
cout << u8"Fil:" + i-> path().filename().string() << endl;
}
else
{
cout << u8"Dir:" + i-> path().filename().string() << endl;
}
}
}
但我不知道如何输出UTF-8文件。