+ if (full)
+ {
+ wxFileName filename(dir);
+ wxArrayString dirs = filename.GetDirs();
+ dirs.Add(filename.GetName());
+
+ size_t count = dirs.GetCount();
+ size_t i;
+ wxString currPath;
+ int noErrors = 0;
+ for ( i = 0; i < count; i++ )
+ {
+ currPath += dirs[i];
+
+ if (currPath.Last() == wxT(':'))
+ {
+ // Can't create a root directory so continue to next dir
+ currPath += wxFILE_SEP_PATH;
+ continue;
+ }
+
+ if (!DirExists(currPath))
+ if (!wxMkdir(currPath, perm))
+ noErrors ++;
+
+ if ( (i < (count-1)) )
+ currPath += wxFILE_SEP_PATH;
+ }
+
+ return (noErrors == 0);
+
+ }
+ else
+ return ::wxMkdir( dir, perm );