Android上的boost::filesystem::wpath
Android上的boost::filesystem::wpath,android,c++,boost,Android,C++,Boost,boost::filesystem提供了许多有趣的函数,例如,我们可以使用boost::filesystem::exists检查一个文件是否存在。我现在在Android中使用这个功能。它在以下程序中成功: int main() { using namespace std; string file_name="/data/local/tmp/abc/def.txt"; boost::filesystem::path dddddd(file_name); if(boo
boost::filesystem
提供了许多有趣的函数,例如,我们可以使用boost::filesystem::exists
检查一个文件是否存在。我现在在Android中使用这个功能。它在以下程序中成功:
int main()
{
using namespace std;
string file_name="/data/local/tmp/abc/def.txt";
boost::filesystem::path dddddd(file_name);
if(boost::filesystem.exists(dddddd))
{
std::cout<<"Succeed"<<std::endl;
}
else
{
std::cout<<"Failed"<<std::endl;
}
return 0;
}
intmain()
{
使用名称空间std;
字符串文件_name=“/data/local/tmp/abc/def.txt”;
boost::filesystem::path dddddddd(文件名);
if(boost::filesystem.exists(dddd))
{
std::coutw你为什么要使用std::wstring
?你不在Windows上。@sjdowling谢谢你的评论,这是一个Windows程序,我正在将它移植到Android上。在我的boost 1.57wpath
版本中,它只是path
的一个typedef,在Windows上编译时使用wchar\t
。我想你应该ld真的重新考虑了在Linux上尝试使用wstring
的成本,因为这涉及到太多的复杂因素。例如wchar\u t
在Windows上是16位,在Linux上是32位。你说你是为Android编写的,在这种情况下,你不能像许多使用UTF-16的软件那样假设小端架构。Glibc没有“不提供\u wfopen
功能等。
int main()
{
using namespace std;
wstring file_name=L"/data/local/tmp/abc/def.txt";
boost::filesystem::wpath dddddd(file_name);
if(boost::filesystem.exists(dddddd))
{
std::cout<<"Succeed"<<std::endl;
}
else
{
std::cout<<"Failed"<<std::endl;
}
return 0;
}