Ошибка преобразования std :: tr2 :: sys :: path в std :: string?

Я использую библиотеку файловой системы Visual Studio 2013 TR2. Я вижу ошибку при преобразовании UNC-пути в строку:

#include "StdAfx.h"#include <filesystem>
#include <iostream>

//------------------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
namespace fs = std::tr2::sys;

fs::path fsPath = "//server/dir";

std::string sPath = fsPath;

std::cout << sPath.c_str() << "\n";
}

Это выведет «\ server \ dir», а не «\\ server \ dir».

Есть ли исправление или обходной путь для этого? Я делаю что-то неправильно?

3

Решение

Ну, я нашел обходной путь, который работает для меня. Если я использую

sPath = fsPath.string();

Теперь я могу передать эту строку в конструктор std :: ifstream. Строка пути будет «// server / dir», а не «\\ server \ dir».

0

Другие решения


По вопросам рекламы [email protected]