将std :: tr2 :: sys :: path转换为std :: string的错误?

时间:2014-12-19 16:55:06

标签: c++ filesystems unc c++-tr2

我正在使用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”。

是否有修复或解决方法?我做错了吗?

1 个答案:

答案 0 :(得分:0)

我发现了一个适用于我的解决方法。如果我使用

sPath = fsPath.string();

我现在可以将该字符串传递给std :: ifstream构造函数。路径字符串将是“// server / dir”而不是“\\ server \ dir”。