hawxgamer

changefiletime

Dec 17th, 2013
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. void ChangeFileTime(char const * const name, char const * const timeStr)
  2. {
  3. time_t atime=0,mtime=0;
  4.  
  5. struct stat attr;
  6. if(stat(name,&attr)==-1)
  7. {
  8. perror("error in stat, ChangeFileTime");
  9. return;
  10. }
  11.  
  12. atime=attr.st_atim.tv_sec; //lade Zeit für letzten lesenden Zugriff
  13. mtime=attr.st_mtim.tv_sec;
  14.  
  15. struct utimbuf ttime;
  16. long d=0,h=0, m=0,s=0;
  17. char *str=timeStr;
  18. long x;
  19. errno = 0;
  20. while ( x = strtol(str, &str, 10), x!=0 && errno == 0) //string parsen
  21. {
  22. switch(*str)
  23. {
  24. case 'd': d+=x; *str++;break;
  25. case 'h': h+=x;*str++; break;
  26. case 'm': m+=x;*str++; break;
  27. case 's': s+=x;*str++;break;
  28. default: perror("Unspezifiertes Zeitformat!"); return; break;
  29.  
  30. }
  31. }
  32.  
  33. //Werte in Sekunden umwandeln
  34. d=d*24*60*60;
  35. m=m*60;
  36. h=h*60*60;
  37. s=s+d+h+m;
  38.  
  39. atime+=s;
  40. mtime+=s;
  41.  
  42. ttime.actime=atime;
  43.  
  44. ttime.modtime=mtime;
  45.  
  46. if(utime(name, &ttime)==-1) {
  47. perror("Fehler bei utime()\n");
  48. return;
  49. }
  50. printf("══════════════════════════════════════════════════════════════════════\n");
  51. printf("\n%s\n",name);
  52. printf("Aenderungsdifferenz in Sekunden : %i sec\n", s);
  53. printf("\n fuer die Datei %s\n", name);
  54. printf("══════════════════════════════════════════════════════════════════════\n");
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment