25 inline bool pwd(std::string& a_pwd) {
27 unsigned int mx_path_len = 2048;
28 char* cwd =
new char[mx_path_len];
31 if(::_getdcwd(0,cwd,mx_path_len)==NULL) {
37 if(::getcwd(cwd,mx_path_len)==NULL) {
48 inline bool cd(
const std::string& a_path){
49 if(::chdir(a_path.c_str())!=0)
return false;
53 inline bool create(
const std::string& a_name){
57 return (::
mkdir(a_name.c_str())==0 ?
true :
false);
59 return (::
mkdir(a_name.c_str(), 0755)==0 ?
true :
false);
63 inline bool home(std::string& a_s) {
65 const char* env = ::getenv(
"USERPROFILE");
67 const char* env = ::getenv(
"HOME");
69 if(!env) {a_s.clear();
return false;}
77 if(s.empty())
return false;
83 inline bool in_fs(
const std::string& a_path){
85 if (::stat(a_path.c_str(),&finfo) < 0)
return false;
90 inline bool is_a(
const std::string& a_path,
bool& a_value) {
93 if (::stat(a_path.c_str(),&finfo) < 0)
return false;
94 a_value = ( ((finfo.st_mode & S_IFMT) == S_IFDIR) ? true :
false);
98 inline bool is_a(
const std::string& a_path) {
100 if(!
is_a(a_path,_is))
return false;
104 inline bool is_dot(
const std::string& a_path) {
110 size_t l = a_path.size();
111 if((l==1) && (a_path[0]==
'.') )
return true;
112 if((l==2) && (a_path[0]==
'.') && (a_path[l]==
'.') )
return true;
113 if((l>=2) && (a_path[l-1]==
'.') && (a_path[l-2]==
sep) )
return true;
114 if((l>=3) && (a_path[l-1]==
'.') && (a_path[l-2]==
'.') && (a_path[l-3]==
sep) )
119 inline bool mkdir(
const std::string& a_name) {
124 if(!
create(a_name))
return false;
126 if(!
is)
return false;
131 inline bool mkcd(
const std::string& a_name) {
134 if(!
mkdir(a_name))
return false;