Я использую библиотеку файловой системы 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».
Есть ли исправление или обходной путь для этого? Я делаю что-то неправильно?
Ну, я нашел обходной путь, который работает для меня. Если я использую
sPath = fsPath.string();
Теперь я могу передать эту строку в конструктор std :: ifstream. Строка пути будет «// server / dir», а не «\\ server \ dir».