[solved][WinAPI] FindFirstFile, fstream i polskie znaki

0

witam!

pobieram sobie listę plików i zapisuje do pliku za pomoca funkcji FindFirstFile/FindNextFile (WINAPI). Aby zapisac do pliku - za pomoca ofstream - ogolnie trzeba przekonwertowac z wchar_t* do char* pole cFileName struktury WIN32_FIND_DATA - funkcje typu wcstombs (wcstombs_s). Problem pojawia sie gdy nazwy plikow zawieraja polskie znaki. Wtedy wszystko sie psuje. Probuje i probuje i nie dziala poprawnie. Chetnie poslucham fachowej porady jak rozwiacac problem.

Pozdrawiam

0

Spróbuj może przed ścieżką umieścić znak L.

FindFirstFile(L"C:\\", &fd);

lub ustaw w opcjach preprocesora aby brał znaki w Unicode.

0

To nie ma nic do rzeczy. Nie chodzi mi o polskie znaki wystepujace w sciezce do katalogu w ktorym szukac, a samych nazwach plikow, ktore zostaja znalezione przez funkcje Find*.

0

Aby wcstombs + fstream działały prawidłowo musisz wskazać bibliotece C++, że używasz takiego kodowania znaków, jakie jest ustawione w systemie operacyjnym:

setlocale(LC_ALL, "");
0

dzieki! dziala.

1 użytkowników online, w tym zalogowanych: 0, gości: 1