Witam,
Mam problem z obsługą polskich znaków w boost. Mianowicie, za pomocą directory_iterator'a zczytuję nazwy plików w katalogu, do listy. Używam przy tym obiektu "path". Jednak gdy nazwy plików zawierają jakieś polskie znaki (z wyjątkiem "ó" chyba), to nie mogę potem podać zczytanej nazwy przy otwieraniu pliku za pomocą fstream, gdyż obiekt zwraca błąd.
W takim razie jak to zrobić, żebym mógł otwierać pliki zaierające polskie znaki? Zależy mi na użyciu obiektu path.
Nikt nie wie, czy nikomu się nie chce pomóc ?
Troche kodu:
#include <iostream>
#include <fstream>
#include <list>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/convenience.hpp>
#include <boost/filesystem/fstream.hpp>
using namespace std;
using namespace boost::filesystem;
int main()
{
path pth("G:/", native);
directory_iterator it(pth), end;
list<string> dirs;
while(it != end)
{
if( !is_directory(*it) )
dirs.push_back(it->string());
++it;
}
for(list<string>::iterator i(dirs.begin()), end(dirs.end()); i != end; ++i)
cout << *i << endl;
std::ifstream plik( dirs.front().c_str() );
if( plik )
cout << "OK" << endl;
}
Jeśli w nazwie pliku sa polskie znaki to plik się nie otwiera.