| 
 
| 赞 | 0 |  
| VIP | 2 |  
| 好人卡 | 27 |  
| 积分 | 1 |  
| 经验 | 26327 |  
| 最后登录 | 2019-10-13 |  
| 在线时间 | 953 小时 |  
 Lv1.梦旅人 
	梦石0 星屑120 在线时间953 小时注册时间2007-4-25帖子805 | 
| 推荐用禾西同志的方法。生成子 Shell 其实就是 fork 一个子进程,有额外的开销。禾西的方法底层调用的是系统 API: 当然在其上也包装了不少抽象层。如果要追求绝对效率,可以直接用 Win32API 调用 CreateDirectory。复制代码static int
wmkdir(const WCHAR *wpath, int mode)
{
    int ret = -1;
    RUBY_CRITICAL(do {
        if (CreateDirectoryW(wpath, NULL) == FALSE) {
            errno = map_errno(GetLastError());
            break;
        }
        if (_wchmod(wpath, mode) == -1) {
            RemoveDirectoryW(wpath);
            break;
        }
        ret = 0;
    } while (0));
    return ret;
}
 | 
 |