这是基于Sciter改写的函数,用于创建多级文件夹(支持中文),请大家看一下还有需要优化的地方吗?
经测试,可成功执行
static int CreatDir(const sciter::value& path) {
std::wstring sdir = path.to_string();
int i = 0;
int iRet;
int iLen = sdir.length();
//在末尾加/
if (sdir[iLen - 1] != '\\' && sdir[iLen - 1] != '/')
{
sdir[iLen] = '/';
sdir[iLen + 1] = '\0';
}
// 创建目录
for (i = 0; i <= iLen; i++)
{
if (sdir[i] == '\\' || sdir[i] == '/')
{
sdir[i] = '\0';
//如果不存在,创建
iRet = _waccess(sdir.c_str(), 0);
if (iRet != 0)
{
iRet = _wmkdir(sdir.c_str());
if (iRet != 0)
{
return -1;
}
}
//支持linux,将所有\换成/
sdir[i] = '/';
}
}
return 0;
}
Thanks!