12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include "__virtualmath.h"
- /**
- * @param dir 文件地址
- * @return 0-错误, 1-普通文件, 2-目录
- */
- int checkFileReadble(char *dir){
- struct stat my_stat;
- int status;
- if (dir == NULL)
- return 3;
- status = stat(dir, &my_stat);
- if (status != 0)
- return 3;
- else if (S_ISREG(my_stat.st_mode)) // 普通文件
- return 1;
- else if (S_ISDIR(my_stat.st_mode))
- return 2;
- else
- return 3;
- }
- char *splitDir(char * dir){
- char *slash = NULL;
- char *point = NULL;
- char *return_char = NULL;
- #ifdef __unix__
- if (dir[memStrlen(dir) - 1] == '/')
- #else
- if (dir[memStrlen(dir) - 1] == '\\') // TODO-szh 设置 sep
- #endif // __unix__
- { dir[memStrlen(dir) - 1] = NUL; }
- if (
- #ifdef __unix__
- (slash = strrchr(dir, '/')) == NULL
- #else
- (slash = strchr(dir, '\\')) == NULL
- #endif // __unix__
- )
- { slash = dir; }
- else
- slash ++;
- if ((point = strchr(dir, '.')) != NULL)
- *point = 0;
- return_char = memStrcpy(slash);
- if (point != NULL)
- *point = '.';
- if (!isalpha(*return_char) && *return_char != '_')
- return_char = memStrcat("_", return_char, false, true);
- for (char *tmp = return_char; *tmp != 0;tmp++)
- if (!isalnum(*tmp) &&'_' != *tmp)
- *tmp = '_';
- return return_char;
- }
|