转 - 如何使ifstream打开中文路径文件

static  std::vector < wchar_t >      s_wchar_buf((size_t) 128 );
    size_t lengthUnicode 
=  MultiByteToWideChar(CP_ACP,  0 , strFileName.c_str(), strFileName.size(), NULL,  0 );
    
if  (s_wchar_buf.size()  <  lengthUnicode  +   1 )
    {
        s_wchar_buf.resize(lengthUnicode 
*   2 );
    }
    wchar_t
*  szUnicode  =   & s_wchar_buf[ 0 ];
    MultiByteToWideChar(CP_ACP, 
0 , strFileName.c_str(), strFileName.size(), szUnicode, lengthUnicode);
    szUnicode[lengthUnicode] 
=   0 ;

    ifstream ifs(szUnicode, ios::
in | ios::ate);
strFileName 是传入参数。
有时候看起来不复杂的问题可以把人拖个半天。。。

你可能感兴趣的:(转 - 如何使ifstream打开中文路径文件)