file.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "__virtualmath.h"
  2. /**
  3. *
  4. * @param dir 文件地址
  5. * @return 0-错误, 1-普通文件, 2-目录
  6. */
  7. int checkFile(char *dir){
  8. struct stat my_stat;
  9. int status = 0;
  10. if (dir == NULL)
  11. return 3;
  12. stat(dir, &my_stat);
  13. if (status != 0)
  14. return 0;
  15. else if (S_ISREG(my_stat.st_mode))
  16. return 1;
  17. else if (S_ISDIR(my_stat.st_mode))
  18. return 2;
  19. else
  20. return 3;
  21. }
  22. char *splitDir(char * dir){
  23. char *slash = NULL;
  24. char *point = NULL;
  25. char *return_char = NULL;
  26. #ifdef __unix__
  27. if ((slash = strrchr(dir, '/')) == NULL)
  28. #else
  29. if ((slash = strchr(dir, '\\')) == NULL)
  30. #endif // __unix__
  31. { slash = dir; }
  32. else
  33. slash ++;
  34. if ((point = strchr(dir, '.')) != NULL)
  35. *point = 0;
  36. return_char = memStrcpy(slash);
  37. if (point != NULL)
  38. *point = '.';
  39. if (!isalpha(*return_char) && *return_char != '_')
  40. return_char = memStrcat("_", return_char, false, true);
  41. for (char *tmp = return_char; *tmp != 0;tmp++)
  42. if (!isalnum(*tmp) &&'_' != *tmp)
  43. *tmp = '_';
  44. return return_char;
  45. }