Exemplo n.º 1
0
// 递归创建路径:直接从 ilog移植过来
int iposix_path_mkdir(const char *path, int mode)
{
	int i, len;
	char str[IPOSIX_MAXBUFF];

	len = (int)strlen(path);
	if (len > IPOSIX_MAXPATH) len = IPOSIX_MAXPATH;

	memcpy(str, path, len);
	str[len] = 0;

#ifdef _WIN32
	for (i = 0; i < len; i++) {
		if (str[i] == '/') str[i] = '\\';
	}
#endif

	for (i = 0; i < len; i++) {
		if (str[i] == '/' || str[i] == '\\') {
			str[i] = '\0';
			if (iposix_access(str, F_OK) != 0) {
				iposix_mkdir(str, mode);
			}
			str[i] = IPATHSEP;
		}
	}

	if (len > 0 && iposix_access(str, 0) != 0) {
		iposix_mkdir(str, mode);
	}

	return 0;
}
Exemplo n.º 2
0
int
install_mkdir (const char *dir, unsigned int mode)
{
#if INSTALL_OS_TYPE == INSTALL_OS_POSIX
  return iposix_mkdir (dir, mode);
#endif
#if INSTALL_OS_TYPE == INSTALL_OS_WIN32
  return iwin32_mkdir (dir, mode);
#endif
}