C++ Не видит путь из-за кирилицы

Рейтинг: 0Ответов: 1Опубликовано: 27.05.2023

Написал прогу для создания папок на серверах но столкнулся с проблемойю Если пути имеют русскую кириллицу программа запускается но ничего не происходит затем выдается ошибка: ""terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error' what(): filesystem error: Cannot convert character sequence: Illegal byte sequence

Process returned -1073740791 (0xC0000409) execution time : 2.060 s Press any key to continue.

Если я использую путь к примеру fs::path path = ("D://test//Vacancy"); То все отлично копируется.

   #include <iostream>
   #include <fstream>
   #include <filesystem>

   using namespace std;
   namespace fs = std::filesystem;

   int main()
   {

   setlocale ( LC_ALL , "" ) ;

   fs::path path = ("D://Тест//Vacancy");

   const auto copyOptions =  fs::copy_options::recursive ;

    fs::copy("Vacancy", path ,copyOptions);
    cout << "Готово" << endl;
    return 0;
    }

Ответы

▲ -1
  #include <iostream>
  #include <fstream>
  #include <filesystem>

  using namespace std;
  namespace fs = std::filesystem;

  int main()
  {
  setlocale(LC_CTYPE, "rus");
  fs::path path = (u8"//server//Папка//папка2//папка3//Vacancy");

  const auto copyOptions =  fs::copy_options::recursive ;

  fs::copy("Vacancy", path ,copyOptions);
  wcout << L"Готово " << endl;
  return 0;
  }

Да пока копирование без проверки папки но сейчас допишу. Да и еще пути нельзя копировать и вставлять их нужно прописывать в ручную. В зависимости вашей IDE.