开发者社区> 问答> 正文

mkdir怎样创建多级中文文件夹??报错



static int CreatDir(const sciter::value& path) {
	std::wstring sdir = path.to_string();
	char *pszDir = sdir.c_str(); //这里有问题
        //"const wchar_t *" 类型的值不能用于初始化 "char *" 类型的实体 
        //return _wmkdir(sdir.c_str());
	int i = 0;
	int iRet;
	int iLen = strlen(pszDir);

	//在末尾加/ 
	if (pszDir[iLen - 1] != '\\' && pszDir[iLen - 1] != '/')
	{
		pszDir[iLen] = '/';
		pszDir[iLen + 1] = '\0';
	}

	// 创建目录 
	for (i = 0; i <= iLen; i++)
	{
		if (pszDir[i] == '\\' || pszDir[i] == '/')
		{
			pszDir[i] = '\0';

			//如果不存在,创建 
			iRet = _access(pszDir, 0);
			if (iRet != 0)
			{
				iRet = _wmkdir(pszDir);
				if (iRet != 0)
				{
					return -1;
				}
			}
			//支持linux,将所有\换成/ 
			pszDir[i] = '/';
		}
	}
	return 0;
}


如上,

char *pszDir = sdir.c_str(); 这里报错,

"const wchar_t *" 类型的值不能用于初始化 "char *" 类型的实体,

但应该怎样改呢?

最好能建立中文文件夹

谢谢!




展开
收起
爱吃鱼的程序员 2020-06-08 20:27:11 671 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    用wchar_t等所有宽字符api<divclass='ref'>

    引用来自“GestureWei”的评论

    用wchar_t等所有宽字符api直接使用wstring的api遍历并修改字符串<divclass="ref"><divclass="ref">

    引用来自“GestureWei”的评论

    用wchar_t等所有宽字符api

    2020-06-08 20:27:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载