+/*
+* See the file LICENSE for redistribution information.
+*
+* Copyright: 2010- 1stclass.co.jp. All rights reserved.
+*
+* Created by Hajime Kurita
+*/
#include <stdio.h>
#include <sys/stat.h>
#include <dirent.h>
#ifdef __cplusplus
#include "1stclass.hpp"
int firstclass::rmkdir(const string in_dir){
- char *check_dir=NULL;
- try{
- check_dir=new char[sizeof(char)*(in_dir.length()+1)];
- safe_strcat(check_dir, in_dir.c_str());
+ char abs_dir[2048]="";
+ string abs_dir_str=rel2abs(in_dir);
+ safe_strcat(abs_dir, abs_dir_str.c_str());
#else
#include "1stclass.h"
int rmkdir(const char *check_dir){
+ char abs_dir[2048]="";
+ rel2abs(check_dir, abs_dir);
#endif
-
+
struct stat st;
char *token_p=NULL;
- char dir_path[512]="";
- char moto[512]="";
- if(stat(check_dir, &st)!=0){
- if(mkdir(check_dir, 0755)==0){
+ char dir_path[2048]="";
+ char moto[2048]="";
+ if(stat(abs_dir, &st)!=0){
+ if(mkdir(abs_dir, 0755)==0){
}
else{
- safe_strcat(moto, check_dir);
+ safe_strcat(moto, abs_dir);
token_p=strtok(moto, "/");
safe_strcat(dir_path, "/");
safe_strcat(dir_path, token_p);
if(mkdir(dir_path, 0755)==0){
}
else{
-#ifdef __cplusplus
- delete check_dir;
-#endif
return 1;
}
}
if(mkdir(dir_path, 0755)==0){
}
else{
-#ifdef __cplusplus
- delete check_dir;
-#endif
return 1;
}
}
}
}
}
-#ifdef __cplusplus
- delete check_dir;
- }
- catch(...){
- if(check_dir!=NULL)
- delete check_dir;
- return 1;
- }
-#endif
return 0;
}