#include <boost/filesystem.hpp>
#include <cvt/cp950>
#include <iostream>
#include <string>
#include <locale>

namespace fs = boost::filesystem;

int main(void) {

  std::locale global_loc = std::locale();
  std::locale loc(global_loc, new stdext::cvt::codecvt_cp950<wchar_t>);
  fs::path::imbue(loc);

  std::cout <<
    "HEADS UP! PIPE OUTPUT TO FILE AND INSPECT WITH HEX OR CP950 EDITOR.\n"
    "WINDOWS COMMAND PROMPT FONTS DON'T SUPPORT CHINESE,\n"
    "EVEN WITH CODEPAGE SET AND EVEN AS OF WIN 10 TECH PREVIEW." << std::endl;

  fs::recursive_directory_iterator end;
  fs::recursive_directory_iterator iter
    ("C:/boost/test-files/utf-8");

  while (iter != end)
  {
    if (fs::is_directory(*iter))
    {
      std::cout << "[directory] " << iter->path().generic_string() << std::endl;
    }
    else if (fs::is_regular(*iter))
    {
      std::cout << " [file] " << iter->path().generic_string() << std::endl;
    }
    ++iter;
  }
  return 0;
}
