2025年6月7日 星期六 乙巳(蛇)年 三月十一 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

c++基础(一):string转wstring及文件拷贝

时间:03-01来源:作者:点击数:75

使用java太长时间,已经习惯了其数据类型转换及处理的便捷。但是,现在使用c++,不得不去面对其数据类型转换,以及相关的处理。瞬间感觉奔溃,一天中,很多时间都交给度娘了...

文件拷贝

本来很方便,提供了CopyFile,但是看到入参,瞬间崩溃,普通字符串不行,需要宽字符串,于是,下面的demo出现了。

  • CopyFile(L"d:\\demo.txt", L"e:\\demo.txt", FALSE);//false代表覆盖,true不覆盖

这样确实可以,但是文件路径不是固定的啊,由外界传入的string怎么办呢?

CopyFile前两个入参是LRCWSTR,可以传入wstring,于是再做下一步操作

string转wstring

  • std::wstring StringToWString(const std::string& str)
  • {
  • int num = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);
  • wchar_t *wide = new wchar_t[num];
  • MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, wide, num);
  • std::wstring w_str(wide);
  • delete[] wide;
  • return w_str;
  • }

于是上面的代码变成了:

  • CopyFile(StringToWString(strPath).c_str(), StringToWString(fileName).c_str(), FALSE);//false代表覆盖,true不覆盖

文件删除

同样是使用了上面的StringToWString

  • DeleteFile(StringToWString(fileName).c_str());
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门